Les String en java

tchiko35 Messages postés 34 Statut Membre -  
KX Messages postés 19031 Statut Modérateur -
Bonjour,
je cherche a supprimer tout les caractères de ponctuation (.,-_' etc) d'un texte en java

aidez moi s'il vous plait

merci


A voir également:

5 réponses

KX Messages postés 19031 Statut Modérateur 3 020
 
Tu peux utiliser split avec par exemple pattern="\\p{Punct}"

public class Test 
{
   public static String supprimer(String texte, String regex)
   {
      StringBuffer sb = new StringBuffer();
      for (String s : texte.split(regex))
         sb.append(s);
      return sb.toString();      
   }
   
   public static void main(String args[])
   {
      String ponctuationWikipedia = "La ponctuation est un ensemble de signes graphiques servant à ordonner le discours dans la langue écrite. Contrairement aux graphèmes, ils ne se réalisent pas comme des phonèmes (« on ne les prononce pas ») mais peuvent, dans de rares cas (logogrammes), représenter des mots.";
      
      String resultat = supprimer(ponctuationWikipedia,"\\p{Punct}");
      System.out.println(resultat);      
   }   
}
0
tchiko35 Messages postés 34 Statut Membre
 
je te remercie pour ta réponse, ça marche a merveille, mais j'ai un problème dans les apostrophes par exemple j'ai la phrase suivante: "le grand nombre de livres et d'articles qui y sont consacrés en linguistique"

je veux supprimer d'article et ne garder que article. et c'est pareil pour t' et m' etc ..

Merci de m'aider s'il vous plait.
0
KX Messages postés 19031 Statut Modérateur 3 020
 
Après il faut "jouer" un peu avec les Pattern pour avoir exactement ce que tu veux.

Essaye avec regex = "\\p{Punct}|\\w'"
0
tchiko35 Messages postés 34 Statut Membre
 
je m'excuse, mais j'arrive pas a trouver le bon pattern, j'ai essayé mais sa donne rien, je te remercie quand même et si tu vois une autre solution, sa serai gentil que tu m'en fasse part stp

Merci.
0
KX Messages postés 19031 Statut Modérateur 3 020
 
Le regex que je t'ai donné à essayer marche avec ton exemple, si tu as des contres-exemples qui ne marchent pas, donne les moi et dis moi pourquoi ça ne donne pas ce que tu veux...

public static void main(String args[])
{
	String exemple = "le grand nombre de livres et d'articles qui y sont consacrés en linguistique";
	String resultat = supprimer(exemple,"\\p{Punct}|\\w'");
	System.out.println(resultat);
}
0
tchiko35 Messages postés 34 Statut Membre
 
voici mon exemple:

String text = " La question du sens des noms propres est un problème épineux, pour preuve le grand nombre de livres et d'articles qui y sont consacrés en linguistique mais aussi dans d'autres disciplines comme la logique, la psychologie ou l'ethnologie. En effet, contrairement à des sujets plus spécifiquement linguistiques tels que l'ergatif ou le morphème, l'étude du nom propre intéresse pratiquement toutes les sciences humaines. Il en résulte le plus souvent un mélange de dénominations qui aboutit à l'emploi de termes dans des sens différents, voire opposés. Un panorama des théories du sens des noms propres démontre que, non seulement plusieurs de ces théories ne sont pas directement importables en linguistique, mais qu'également la polysémie qu'elles entraînent est source d'incompréhension entre auteurs : plusieurs débats polémiques sur le sens des noms propres ou sur leurs connotations ne découlent finalement que de problèmes terminologiques.Pour qu'une étude linguistique du nom propre soit efficace, il est nécessaire d'avoir une approche détachée des influences trop prégnantes des autres disciplines et clairvoyante quant à ses propres concepts. Ainsi, l'auteur affirme que la distinction entre ces trois dimensions que sont l'étymologie, la signification et le sens est essentielle dans l'étude des noms propres comme elle l'est pour les autres parties du discours. ";

text=text.toLowerCase();


String resultat = supprimer(text,"\\p{Punct}|\\w'");
System.out.println(resultat);

je sais pas si c'est a cause du grand nombre de caractere
0
KX Messages postés 19031 Statut Modérateur 3 020
 
Excepté le qu' où seul le u' est supprimé, il n'y a pas de problème.
Tous les symboles de ponctuations ont été supprimés, ainsi que les l' et d'

Pour supprimer le qu' en entier, prends regex="\\p{Punct}|\\w+'"
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tchiko35 Messages postés 34 Statut Membre
 
Merci beaucoup, tu m'as rendu un grand service, il me reste encore un autre problème concernant la lemmatisation, je sais pas si sa te dérange pas que je le pose ou bien je crée un nouveau sujet.
0
KX Messages postés 19031 Statut Modérateur 3 020
 
Si ça n'a rien à voir créé une autre discussion.

Si je sais y répondre, ce sera peut-être moi qui y répondrai ^^
Sinon il y aura plus de chance que quelqu'un d'autre te réponde si c'est une nouvelle discussion ;)
0