Enlever les questions de mon texte

cs_fraisa1985 Messages postés 52 Date d'inscription jeudi 12 juillet 2007 Statut Membre Dernière intervention 15 avril 2013 - 16 déc. 2012 à 19:43
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 - 18 déc. 2012 à 08:24
Bonjour à tous,

Pourriez-vous m'aider pour enlever les questions de mon texte. En effet, J'ai des différents textes qui se compose d'un ensemble des phrases parmi lesquels il-y-a des questions. Mon objectif est tout simplement d'enlever tous ces questions de mon texte !



Exemple:
xxxxxxx ? yyyyyyy --> yyyyyyyy

xxxxxxxxx? yyyyy. zzzz? cccc--> yyyyyy.cccc




Toute information sera le bien venue et Merci d'avance.

6 réponses

cs_fraisa1985 Messages postés 52 Date d'inscription jeudi 12 juillet 2007 Statut Membre Dernière intervention 15 avril 2013
16 déc. 2012 à 21:59
J'ai essayé ce code mais ça marche pour les cas ou j'ai xxxxx ? hhhhhhh. khjhjgf ? qui normalement doit me renvoyer hhhhhhh.



public static void main(String[] args) {

int fromIndex=0,begin=0, index=0;
String s="jhjg ? bonjour.skhj k ?";

while (s.indexOf('?')!=-1)
{
index= s.indexOf('?');
fromIndex=s.indexOf('.', begin+1);


if (fromIndex!=-1)
begin=fromIndex;
if(begin<index && fromIndex!=-1)
{
String s1=s.substring(0, begin+1);
if (index==s.length())
index--;
String s2=s.substring(index+1, s.length());
s=s1+s2;
begin=s1.length();
}
else
{

String s1=s.substring(0, begin+1);
if (index==s.length())
index--;
String s2=s.substring(index+1, s.length());
s=s1+s2;
begin=s1.length();

}
}

System.out.print(s);
}

}
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
17 déc. 2012 à 08:56
Salut,

Tu peux utiliser une expression régulière.

Pour chaque ligne de ton fichier, une question est définie par :

String regexQuestion="\\p{Alpha}+\\p{Space}*\\?";
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
17 déc. 2012 à 08:58
Allez, je vais être un peu plus précis : oublie ton code et remplace le par ces deux lignes :

public static void main(String[] args) {
String regex = "\\p{Alpha}+\\p{Space}*\\?";
System.out.println("question ? pas une question. Quetion?".replaceAll(regex, "").trim());
}
0
cs_fraisa1985 Messages postés 52 Date d'inscription jeudi 12 juillet 2007 Statut Membre Dernière intervention 15 avril 2013
18 déc. 2012 à 07:22
Merci beaucoup ! je vais le tester tout de suite
0

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

Posez votre question
cs_fraisa1985 Messages postés 52 Date d'inscription jeudi 12 juillet 2007 Statut Membre Dernière intervention 15 avril 2013
18 déc. 2012 à 07:27
Pourriez-vous m'expliquez votre expression régulière s'il vous plaît !
0
cs_Julien39 Messages postés 6414 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 29 juillet 2020 371
18 déc. 2012 à 08:24
Une expression régulière c'est un motif qui permet de décrire une chaine. C'est un langage que tu peux apprendre ici par exemple : http://www.javafr.com/tutoriaux/UTILISATION-EXPRESSIONS-REGULIERES_1286.aspx

\\p{Alpha}+\\p{Space}*\\?

\\p{Alpha} : un alphanumérique       |
                                     | => \\p{Alpha}+ : un alphanumérique répété 1 fois ou plus
+ : caractère répété 1 fois ou plus  |

\\p{Space} : un espace               |
                                     | => \\p{Space}* : un certain nombre d'espaces
* : caractère répété 0 fois ou plus  |

et \\? c'est le ? car "?" a une signification pour les regex


Le motif décrit donc une chaîne composée de lettres suivie d'un espace et d'un ? : une question.

Ca marche comme tu veux ?
0
Rejoignez-nous