programacion - manejo de cadenas en java
dividir cadena solo en primera instancia-java (6)
Quiero dividir una cadena por ''='' charecter. Pero quiero que se divida solo en primera instancia. Cómo puedo hacer eso ? Aquí hay un ejemplo de JavaScript para ''_'' char, pero no funciona para mí dividir la cadena solo en la primera instancia del carácter especificado
Ejemplo:
apple=fruit table price=5
Cuando intento String.split (''=''); da
[apple],[fruit table price],[5]
Pero yo necesito
[apple],[fruit table price=5]
Gracias
Como muchas otras respuestas sugieren el enfoque de límite, esta puede ser otra manera
Puedes usar el método indexOf en String, que devolverá la primera ocupación del personaje dado. Usando ese índice puedes obtener la salida deseada
String target = "apple=fruit table price=5" ;
int x= target.indexOf("=");
System.out.println(target.substring(x+1));
Prueba este código ...
Esta funcionando.
public class Split
{
public static void main(String...args)
{
String a = "%abcdef&Ghijk%xyz";
String b[] = a.split("%", 2);
System.out.println("Value = "+b[1]);
}
}
Sí, puedes, simplemente pasa el parametro entero al método de división
String stSplit = "apple=fruit table price=5"
stSplit.split("=", 2);
Aquí hay una referencia de doc java: String # split (java.lang.String, int)
String slpitString [] = stringInToSearch.split ("patrón", 2);
String[] func(String apple){
String[] tmp = new String[2];
for(int i=0;i<apple.length;i++){
if(apple.charAt(i)==''=''){
tmp[0]=apple.substring(0,i);
tmp[1]=apple.substring(i+1,apple.length);
break;
}
}
return tmp;
}
//returns string_ARRAY_!
me gusta escribir métodos propios :)
string.split("=", 2);
Como String.split(java.lang.String regex, int limit)
explica:
La matriz devuelta por este método contiene cada subcadena de esta cadena que termina con otra subcadena que coincide con la expresión dada o finaliza al final de la cadena. Las subcadenas en la matriz están en el orden en que ocurren en esta cadena. Si la expresión no coincide con ninguna parte de la entrada, la matriz resultante tiene solo un elemento, a saber, esta cadena.
El parámetro de
limit
controla el número de veces que se aplica el patrón y, por lo tanto, afecta la longitud de la matriz resultante. Si el límite n es mayor que cero, entonces el patrón se aplicará a lo sumo n - 1 veces, la longitud de la matriz no será mayor que n , y la última entrada de la matriz contendrá todas las entradas más allá del último delimitador coincidente.El string
boo:and:foo
, por ejemplo, produce los siguientes resultados con estos parámetros:
Regex Limit Result : 2 { "boo", "and:foo" } : 5 { "boo", "and", "foo" } : -2 { "boo", "and", "foo" } o 5 { "b", "", ":and:f", "", "" } o -2 { "b", "", ":and:f", "", "" } o 0 { "b", "", ":and:f" }