40 votes

Comment supprimer des caractères spécifiques d'une chaîne particulière en Java ?

Par exemple, j'extrais une chaîne de caractères d'un fichier texte et j'ai besoin de ces mots pour former un tableau. Cependant, lorsque je fais tout cela, certains mots se terminent par une virgule (,) ou un point (.) ou même par des parenthèses (ce qui est parfaitement normal).

Ce que je veux faire, c'est me débarrasser de ces personnages. J'ai essayé de le faire en utilisant les méthodes String prédéfinies de Java, mais je n'y arrive pas.

181voto

Mark Byers Points 318575

Réaffecter la variable à une sous-chaîne :

s = s.substring(0, s.length() - 1)

Il existe également une autre façon de résoudre votre problème : vous pourriez aussi envisager d'utiliser une StringTokenizer pour lire le fichier et définir les délimiteurs comme étant les caractères que vous ne voulez pas inclure dans les mots.

17voto

OMG Ponies Points 144785

Utilisez :

String str = "whatever";
str = str.replaceAll("[,.]", "");

replaceAll prend un expression régulière . Ceci :

[,.]

...recherche chaque virgule et/ou point.

7voto

Tom Neyland Points 3772

Pour supprimer le dernier caractère, faites comme suit Mark Byers a déclaré

s = s.substring(0, s.length() - 1);

En outre, une autre façon de supprimer les caractères que vous ne voulez pas serait d'utiliser la fonction .replace(oldCharacter, newCharacter) méthode.

comme dans :

s = s.replace(",","");

et

s = s.replace(".","");

4voto

bmargulies Points 49855

Vous ne pouvez pas modifier une chaîne de caractères en Java. Elles sont immuables. Tout ce que vous pouvez faire, c'est créer une nouvelle chaîne qui est une sous-chaîne de l'ancienne chaîne, moins le dernier caractère.

Dans certains cas, un StringBuffer peut vous être utile.

3voto

AlexGach Points 62

La meilleure méthode est celle qu'explique Mark Byers :

s = s.substring(0, s.length() - 1)

Par exemple, si nous voulons remplacer \ par un espace " " avec ReplaceAll, cela ne fonctionne pas bien.

String.replaceAll("\\", "");

ou

String.replaceAll("\\$", "");   //if it is a path

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X