Dividir la cadena en pares clave-valor
Tengo una cadena como esta:
pet:cat::car:honda::location:Japan::food:sushi
Ahora:
indica pares clave-valor mientras::
Separa las parejas. Quiero agregar los pares clave-valor a un mapa.
Puedo lograr esto usando:
Map<String, String> map = new HashMap<String, String>();
String test = "pet:cat::car:honda::location:Japan::food:sushi";
String[] test1 = test.split("::");
for (String s : test1) {
String[] t = s.split(":");
map.put(t[0], t[1]);
}
for (String s : map.keySet()) {
System.out.println(s + " is " + map.get(s));
}
¿Pero hay una manera eficiente de hacer esto?
Siento que el código es ineficiente porque he usado 2String[]
objetos y llamado elsplit
funcionan dos veces. Además, estoy usandot[0]
yt[1]
que podría arrojar unArrayIndexOutOfBoundsException
si no hay valores