¿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.
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. –