Comment supprimer des caractères spécifiques d'une chaîne particulière en Java?
par exemple, j'extrait une chaîne de caractères d'un fichier texte et j'ai besoin de ces mots pour former un tableau. Cependant, quand je fais tout ce que certains mots se terminent par virgule (,) ou un point (.) ou même avoir des crochets attachés à eux (ce qui est parfaitement normal).
ce que je veux, c'est me débarrasser de ces personnages. J'ai essayé de le faire en utilisant ces méthodes de chaîne prédéfinies en Java, mais je ne peux pas m'en passer.
7 réponses
utiliser:
String str = "whatever";
str = str.replaceAll("[,.]", "");
remplace prend une expression régulière . Ceci:
[,.]
...recherche chaque virgule et / ou période.
Réaffecter la variable d'une sous-chaîne:
s = s.substring(0, s.length() - 1)
aussi une autre façon de résoudre votre problème: vous pouvez également envisager d'utiliser un StringTokenizer pour lire le fichier et définir les délimiteurs pour être les caractères que vous ne voulez pas faire partie des mots.
Pour supprimer le dernier caractère ne Marque Byers dit
s = s.substring(0, s.length() - 1);
de plus, une autre façon de supprimer les caractères que vous ne voulez pas serait d'utiliser la méthode .replace(oldCharacter, newCharacter)
.
comme dans:
s = s.replace(",","");
et
s = s.replace(".","");
vous ne pouvez pas modifier une chaîne en Java. Ils sont immuables. Tout ce que vous pouvez faire est de créer une nouvelle chaîne qui est sous-chaîne de l'ancienne chaîne, moins le dernier caractère.
dans certains cas, un StringBuffer peut vous aider à la place.
la meilleure méthode est ce que Mark Byers explique:
s = s.substring(0, s.length() - 1)
par exemple, si nous voulons remplacer \ to space ""par ReplaceAll, il ne fonctionne pas très bien
String.replaceAll("\", "");
ou
String.replaceAll("\$", ""); //if it is a path
notez que les limites des mots dépendent aussi de la localisation. Je pense que la meilleure façon de le faire en utilisant java standard.texte.BreakIterator. Voici un exemple de la java.sun.com tutoriel.
import java.text.BreakIterator;
import java.util.Locale;
public static void main(String[] args) {
String text = "\n" +
"\n" +
"For example I'm extracting a text String from a text file and I need those words to form an array. However, when I do all that some words end with comma (,) or a full stop (.) or even have brackets attached to them (which is all perfectly normal).\n" +
"\n" +
"What I want to do is to get rid of those characters. I've been trying to do that using those predefined String methods in Java but I just can't get around it.\n" +
"\n" +
"Every help appreciated. Thanx";
BreakIterator wordIterator = BreakIterator.getWordInstance(Locale.getDefault());
extractWords(text, wordIterator);
}
static void extractWords(String target, BreakIterator wordIterator) {
wordIterator.setText(target);
int start = wordIterator.first();
int end = wordIterator.next();
while (end != BreakIterator.DONE) {
String word = target.substring(start, end);
if (Character.isLetterOrDigit(word.charAt(0))) {
System.out.println(word);
}
start = end;
end = wordIterator.next();
}
}
Source: http://java.sun.com/docs/books/tutorial/i18n/text/word.html
vous pouvez utiliser replaceAll()
méthode:
String.replaceAll(",", "");
String.replaceAll("\.", "");
String.replaceAll("\(", "");
etc..