Comptage du nombre de mots dans un fichier
Je vais avoir un problème de compter le nombre de mots dans un fichier. L'approche que je prends, c'est quand je vois un espace ou un saut de ligne puis-je savoir pour compter un mot.
Le problème est que si j'ai plusieurs lignes entre les paragraphes, puis j'ai fini par compter que les mots aussi. Si vous regardez le readFile() la méthode que vous pouvez voir ce que je fais.
Pourriez-vous m'aider et me guider dans la bonne direction sur la façon de résoudre ce problème?
Exemple de fichier d'entrée (y compris une ligne vide):
word word word
word word
word word word
Un environnement intimidant nombre de doublons: stackoverflow.com/search?q=java+word+count
stackoverflow.com/questions/277143/...
double possible de Java word count
Double Possible de Java word count
stackoverflow.com/questions/277143/...
double possible de Java word count
Double Possible de Java word count
OriginalL'auteur Tony | 2010-11-04
Vous devez vous connecter pour publier un commentaire.
Je voudrais changer votre approche un peu. Tout d'abord, je voudrais utiliser une
BufferedReader
pour lire le fichier fichier ligne par ligne à l'aide dereadLine()
. Puis diviser chaque ligne sur les espaces à l'aide deString.split("\\s")
et l'utilisation de la taille de la matrice résultante de voir comment beaucoup de mots sont sur cette ligne. Pour obtenir le nombre de caractères, vous pouvez soit regarder la taille de chaque ligne ou de chaque division mot (en fonction de si vous voulez compter espaces comme des caractères).OriginalL'auteur Brian Clements
Vous pouvez utiliser un Scanner avec un FileInputStream au lieu de BufferedReader avec un FileReader. Par exemple:-
String word=sc.next(); if(word.indexOf("\\")==-1) count++;
Cela donnera un peu plus précise de comptage....que voulez-vous dire? Je ne comprends pas ce qui est signifié par il compte de tous les styles et les ajustements. Pouvez-vous donner un exemple?
OriginalL'auteur tanyehzheng
C'est juste une pensée. Il y a un moyen très simple de le faire. Si vous avez juste besoin d'un certain nombre de mots et non des mots, utilisez Apache WordUtils
OriginalL'auteur javasqlsecurity dot com
Il suffit de garder un indicateur booléen autour qui vous permet de savoir si le caractère précédent était espaces ou pas (pseudo-code):
OriginalL'auteur levik
OriginalL'auteur narendra kumar botta
Hack solution
Vous pouvez lire le fichier texte dans une Chaîne de caractères var. Puis diviser la Chaîne en un tableau à l'aide d'un unique espace comme délimiteur StringVar.Split(" ").
Le Tableau de numération égal au nombre de "Mots" dans le fichier.
Bien sûr, ce ne serait pas vous donner un nombre de numéros de ligne.
OriginalL'auteur Gthompson83
Je pense qu'une bonne méthode serait par le biais de la Regex:
Espère que cela aide. Le "\ \ s+" le sens est dans Modèle javadoc
OriginalL'auteur Oso
3 étapes: Consommer tous les espaces blancs, vérifier si est une ligne de consommer la totalité de l'nonwhitespace.3
OriginalL'auteur fabrizioM
Fichier Word-Count
Si entre les mots ayant certains symboles, alors vous pouvez fractionner et de compter le nombre de Mots.
OriginalL'auteur Yash
Prendre un coup d'oeil à ma solution ici, il devrait fonctionner. L'idée est de supprimer tous les indésirables de symboles à partir de la parole, puis séparer ces mots et de les stocker dans une autre variable, j'ai été en utilisant ArrayList. En ajustant le "excludedSymbols" variable que vous pouvez ajouter plus de symboles qui vous aimeriez être exclus de la mots.
OriginalL'auteur F.A. Botic
Cela peut être fait dans une très moyen à l'aide de Java 8:
OriginalL'auteur Alex Mamo
OriginalL'auteur Niteesh Gupta
Le code ci-dessous prend en charge Java 8
//Lire le fichier en Chaîne
//En gardant ces dans la liste des chaînes en divisant par un délimiteur
OriginalL'auteur Sandra Pavan