@TostMaria

Как добавить в HashMap только ключи?

Добрый день!
Вопрос по Java. Есть необходимость прочитать из файла строки вида <число>+<" ">+<остальная часть строки>.
Например: "95 Добрый день!"
В дальнейшем информацию надо преобразовывать - делать определенную выборку из чисел, и по этим числам - получать строку, которая соответствовала числу в исходном файле.
Я правильно понимаю, что для этого подойдет HashMap?
Но у меня возникает вопрос, можно ли поместить в HashMap только ключи? А потом только значения?

Например, для извлечения символов самой строки нужно использовать такой код (гугл помог):
int start = 10;

int end = 14;

char buf[] = new char[end - start];

s.getChars(start, end, buf, 0);

А что из HashMap написать вместо buf?
  • Вопрос задан
  • 2663 просмотра
Решения вопроса 1
@Trox
Вставить только ключи можно, а вот только значения не совсем.
Для решения задачи можно использовать такой код(код выше не совсем подхождит, так как расчитан на то, что будет только один пробел в строке):
import java.util.*;
import java.util.regex.*;
public class Analyzer{
  private final static Pattern LINES_NUM_PATTERN = Pattern.compile("\\d+\\s*");

  public static void main(String[] args) throws InterruptedException, IOException {
        Map<Integer, String> lines = new HashMap<>();
        String line ="43 Hello universe!";
        Matcher matcher = LINES_NUM_PATTERN.matcher(line);
        if (matcher.find() && matcher.start() == 0) {
            String number = matcher.group().trim();
            lines.put(Integer.parseInt(number), line.substring(matcher.end()));
        }
        System.out.println(lines);
 }
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы