J'ai fait un programme qui compte la fréquence d'un mot dans une très longue chaîne. Mon problème est que le programme comporte par exemple "*" (considère "une citation) et" il "comme des mots différents et donc les mettre dans différentes catégories.
J'ai essayé de remplacer tous les marques de ponctuation que je connais avec le code suivant: p> Malheureusement, le code n'a pas fonctionné et je pense que c'est parce qu'il y a Beaucoup de guillemets différents dans Unicode que je ne peux pas voir une différence entre, il y a donc un moyen de supprimer tous les caractères Unicode, à l'exception des lettres et des espaces blancs avec la méthode String.ReplaceAll ou dois-je faire un chararray et continuer à partir de là ? P> Merci beaucoup, toute aide serait appréciée. p> p>
3 Réponses :
Je pense que cela pourrait le faire qui supprimera tous les caractères qui ne sont pas des caractères alphanumériques ou spéciaux. p> comme suggesed par @npinti p>
Idéally a-za-z code> est remplacé par
\ p {l} code>, puisque ce dernier traite avec lettres i> de toutes les langues, par opposition à Le premier qui ne traite que de lettres du jeu de caractères latin.
Cela a fonctionné mais mon projet est en suédois, donc il a supprimé toutes les lettres suédoises spéciales (Å, Ä et Ö) y a-t-il un moyen d'éviter cela? J'aurais dû le mentionner dans la question, je vais le modifier maintenant.
Ceci éliminera toutes les lettres et les espaces blancs. légende: p> Exemple: p>
^ code> - exclure des caractères donnés d'être remplacé li>
\\ s code> - tous les espaces (\ n, \ t, '') li>
a-za-z code> - toutes les lettres li>
ul>
Merci d'avoir expliqué comment cela fonctionne. Savez-vous d'un endroit où je peux en savoir plus sur la façon dont cela fonctionne? Merci encore.
Généralement, Google, mais pour commencer à commencer: Vogella.com/Tutorials/javaregularexpressions/article.htmlLec a>
Ceci éliminera tous les caractères non lettres / chiffres et s'ils écraseront les espaces afin de ne pas avoir plusieurs espaces consécutifs:
text = text.replaceAll("[^\\p{L}\\d]+", " ");