У меня есть строка вроде этого:
pet:cat::car:honda::location:Japan::food:sushi
Теперь :
указывает пары ключ-значение, а ::
- пары.
Я хочу добавить пары ключ-значение к карте.
Я могу добиться этого, используя:
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));
}
Но есть ли эффективный способ сделать это?
Я чувствую, что код неэффективен, потому что я использовал 2 String[]
объекта и дважды называл функцию split
.
Кроме того, я использую t[0]
и t[1]
, которые могут вызывать ArrayIndexOutOfBoundsException
, если значений нет.