StringTokenizer to HashMap

Рейтинг: 0Ответов: 2Опубликовано: 16.03.2015

Уже несколько дней пытаюсь записать данные в HashMap.

Есть файл, из которого читаю String и разделяю его на части : вот таким делиметром. Файл состоит из слов и цифр (Пример: 2.0:Блонд:3.0:Лайт Блонд ), цифры должны быть ключем и слова значением.

Ответы

▲ 1Принят

Кто тебе дал такой уродливый формат данных? Делить ключи со значениями тем же делиметеров что и сущности. Бред. Вот как надо:

static public Map<Double, String> map = new HashMap<>();

    public static void divide(String row) {
        String[] entry = row.split(":");
        map.put(Double.parseDouble(entry[0]), entry[1]);
    }
public static void main(String[] args) throws InterruptedException {

    String[] ar = "2.0:Блонд;3.0:Лайт Блонд".split(";");
    for (String x : ar) {
        divide(x);
    }
}
▲ 1

эм, в чем проблема-то?

package name.etki.playground;

import java.util.HashMap;

public class SimpleParser {
    public static void main(String[] args) {
        String input = "2.0:Bonnie:3.0:Clyde";
        HashMap<String, String> map = new HashMap<>();
        String[] chunks = input.split(":");
        if (chunks.length % 2 != 0) {
            throw new IllegalArgumentException("Input is malformed, one pair is split");
        }
        for (int i = 0; i < chunks.length; i += 2) {
            map.put(chunks[i], chunks[i+1]);
        }
    }
}