Как правильнее распарсить строку.
Строка вот такого типа: key:value|key:value|key:value
В итоге планирую получить HashMap<String, Integer>
.
Пример: "Temperature:35"
1) split:
String example = "Terminator:35|SuperMen:53|Robbin:12";
String[] pairs = example.split("\\|");
Map<String, Integer> map = new HashMap<>();
for (String pair : pairs) {
String[] keyValue = pair.split(":");
map.put(keyValue[0], Integer.valueOf(keyValue[1]));
}
2) regex:
Map<String, Integer> map = new HashMap<>();
String example = "Terminator:35|SuperMen:53|Robbin:12";
Pattern pattern = Pattern.compile("(\\w+):(\\d+)");
Matcher matcher = pattern.matcher(example);
while (matcher.find()) {
map.put(matcher.group(1), Integer.valueOf(matcher.group(2)));
}
System.out.println(map);
3) в цикле, не сильно оптимально вышло, но
Map<String, Integer> map = new HashMap<>();
String example = "Terminator:35|SuperMen:53|Robbin:12";
StringBuilder key = new StringBuilder();
StringBuilder value = new StringBuilder();
boolean keyFlag = true;
boolean valueFlag = false;
for (char ch : example.toCharArray()) {
if (ch == ':') {
valueFlag = true;
keyFlag = false;
} else if (ch == '|') {
keyFlag = true;
valueFlag = false;
map.put(key.toString(), Integer.valueOf(value.toString()));
value = new StringBuilder();
key = new StringBuilder();
} else {
if (keyFlag) {
key.append(ch);
} else if (valueFlag) {
value.append(ch);
}
}
}
map.put(key.toString(), Integer.valueOf(value.toString()));
System.out.println(map);
Виртуальный выделенный сервер (VDS) становится отличным выбором
Возможно ли перехватить IllegalStateException в собственном обработчике исключений?Смысл в том, чтобы если в командной строке отсутствует имя файла,...
Суть вопроса такова, нужно сделать круглый прогресс барПробовал создать на основе ProgressIndicator, не выходит ничего нормального
Текст в input (засчет отступа над ним) расположен не по центруКак убрать отступы у шрифтов?
Как проще всего с помощью CSS и HTML реализовать линии, обведенные желтым?