Je veux vérifier si ma chaîne contient un caractère +. J'ai essayé de suivre le code
s= "ddjdjdj+kfkfkf";
if(s.contains ("\\+"){
String parts[] = s.split("\\+);
s= parts[0]; // i want to strip part after +
}
mais cela ne donne pas le résultat attendu. Une idée?
Vous avez besoin de cela à la place:
if(s.contains("+"))
contains()
méthode de String
la classe ne prend pas d'expression régulière en tant que paramètre, elle prend du texte normal.
EDIT:
String s = "ddjdjdj+kfkfkf";
if(s.contains("+"))
{
String parts[] = s.split("\\+");
System.out.print(parts[0]);
}
SORTIE:
ddjdjdj
Pourquoi pas simplement:
int plusIndex = s.indexOf("+");
if (plusIndex != -1) {
String before = s.substring(0, plusIndex);
// Use before
}
La raison pour laquelle votre version originale n'a pas fonctionné n'est pas vraiment claire, mais vous n'avez pas expliqué ce qui s'était réellement passé. Si vous voulez séparer pas en utilisant des expressions régulières, je utiliserais personnellement Guava :
Iterable<String> bits = Splitter.on('+').split(s);
String firstPart = Iterables.getFirst(bits, "");
Si vous voulez utiliser split
(la version intégrée ou Guava), vous n'avez pas besoin de vérifier si elle contient +
_ d'abord - si ce n'est pas le cas, il n'y aura qu'un seul résultat. Évidemment, il y a une question d'efficacité, mais c'est du code plus simple:
// Calling split unconditionally
String[] parts = s.split("\\+");
s = parts[0];
Notez que l'écriture String[] parts
est préférable à String parts[]
_ c'est beaucoup plus idiomatique Java) code.
[+] est plus simple
String s = "ddjdjdj+kfkfkf";
if(s.contains ("+"))
{
String parts[] = s.split("[+]");
s = parts[0]; // i want to strip part after +
}
System.out.println(s);