web-dev-qa-db-fra.com

Comment vérifier si la chaîne contient le caractère '+'

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?

35
user93796

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
77
Eng.Fouad

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.

11
Jon Skeet

[+] 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);
1
cloudygoose