2012-04-08 50 views
27

Quiero comprobar si mi cadena contiene un + character.I trató siguiente códigocómo comprobar si la cadena contiene carácter '+'

s= "ddjdjdj+kfkfkf"; 

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

} 

pero doesnot dar idea result.Any esperado?

+2

Lea http://tinyurl.com/so-hints - es inútil decir que no da el resultado esperado sin decir lo que se esperaba y lo que realmente tiene. –

Respuesta

61

Es necesario este lugar:

if(s.contains("+")) 

contains() método de String clase no toma una expresión regular como un parámetro, se necesita un texto normal.


EDIT:

String s = "ddjdjdj+kfkfkf"; 

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

SALIDA:

ddjdjdj 
+0

Eso no tiene la parte antes del plus, que es lo que parece que el OP realmente quiere. –

+0

Cuando publiqué mi comentario, su respuesta * solo * contenía la llamada a 'String.contains'. –

+0

(Después de haber visto la pregunta nuevamente, me había perdido el hecho de que ya estaba llamando contiene. Es demasiado pronto. Doh. Pero señalar que el resto del código ya estaba bien hubiera sido útil ...) –

9

¿Por qué no:

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

No está muy claro por qué tu versión original no funcionó, pero luego no dijiste qué sucedió realmente. Si desea dividir no el uso de expresiones regulares, que haría uso personal Guava:

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

Si usted va a utilizar split (ya sea la versión incorporada o guayaba) que no es necesario compruebe si contiene + primero - si no lo hace, solo habrá un resultado de todos modos. Obviamente, hay una cuestión de eficiencia, pero es más simple código:

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

Tenga en cuenta que la escritura String[] parts se prefiere sobre String parts[] - es el código de Java mucho más idiomática.

+0

Solución increíble Muchas gracias! –

0

[+] es más 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); 
Cuestiones relacionadas