how to check if string contains '+' character [duplicate]

I want to check if my string contains a + character.I tried following code

s= "ddjdjdj+kfkfkf"; if(s.contains ("\\+"){ String parts[] = s.split("\\+); s= parts[0]; // i want to strip part after + } 

but it doesnot give expected result.Any idea?

1

3 Answers

You need this instead:

if(s.contains("+")) 

contains() method of String class does not take regular expression as a parameter, it takes normal text.


EDIT:

String s = "ddjdjdj+kfkfkf"; if(s.contains("+")) { String parts[] = s.split("\\+"); System.out.print(parts[0]); } 

OUTPUT:

ddjdjdj 
3

Why not just:

int plusIndex = s.indexOf("+"); if (plusIndex != -1) { String before = s.substring(0, plusIndex); // Use before } 

It's not really clear why your original version didn't work, but then you didn't say what actually happened. If you want to split not using regular expressions, I'd personally use Guava:

Iterable<String> bits = Splitter.on('+').split(s); String firstPart = Iterables.getFirst(bits, ""); 

If you're going to use split (either the built-in version or Guava) you don't need to check whether it contains + first - if it doesn't there'll only be one result anyway. Obviously there's a question of efficiency, but it's simpler code:

// Calling split unconditionally String[] parts = s.split("\\+"); s = parts[0]; 

Note that writing String[] parts is preferred over String parts[] - it's much more idiomatic Java code.

1

[+]is simpler

 String s = "ddjdjdj+kfkfkf"; if(s.contains ("+")) { String parts[] = s.split("[+]"); s = parts[0]; // i want to strip part after + } System.out.println(s); 

You Might Also Like