que tienen la siguiente cadena:
A:B:1111;domain:80;a;b
El A
es opcional, así B:1111;domain:80;a;b
también es una entrada válida.
El :80
es opcional, así que B:1111;domain;a;b
o :1111;domain;a;b
son también una entrada válida
Lo que yo quiero es terminar con un String[]
que tiene:¿Cuál es una buena manera de dividir cadenas aquí?
s[0] = "A";
s[1] = "B";
s[2] = "1111";
s[3] = "domain:80"
s[4] = "a"
s[5] = "b"
Hice esto de la siguiente manera:
List<String> tokens = new ArrayList<String>();
String[] values = s.split(";");
String[] actions = values[0].split(":");
for(String a:actions){
tokens.add(a);
}
//Start from 1 to skip A:B:1111
for(int i = 1; i < values.length; i++){
tokens.add(values[i]);
}
String[] finalResult = tokens.toArray();
Me preguntaba ¿hay una mejor manera de hacer esto? ¿De qué otra manera podría hacer esto de manera más eficiente?
hizo que trató con: s.split ("[;:]") Esta división de expresiones regulares para un char que es ' ; ' o ':' – rascio
¿El dominio siempre será seguido por un '80'? – codaddict
@codaddict: No es opcional también – Jim