История такая, решил написать короткое практичное красивое решение.
- быстрая компактная инициализация map
static {
map = Map.ofEntries(
entry(0, "ноль"), entry(1, "один"), entry(2, "два"), entry(3, "три"), entry(4, "четыре"),
entry(5, "пять"), entry(6, "шесть"), entry(7, "семь"), entry(8, "восемь"), entry(9, "девять"),
entry(10, "десять"), entry(11, "одиннадцать"), entry(12, "двенадцать")
);
}
-Stream чтобы пролететь по строкам без присваивания лишним переменным всяких значений и долгих итераций
- очень хочется потренировать лямбды, но у меня с нuми каждый раз беда
1.0
while (filereader.ready()) {
Arrays.asList(filereader.readLine().split(" "))
.stream()
.map(s -> (Pattern.matches("0[1-9]|1[0-2]", s) ? map.get(Integer.parseInt(s)) : (s)))
.forEach(s -> System.out.print(s + " "));
System.out.println();//System.lineSeparator();
}
Он работает хорошо. Почти... строки из примера заменяют 12 но не заменяют 1
Это стоит 1 бакс, а вот это - двенадцать .
Переменная имеет имя file1.
110 - это число.
Помогите с регуляркой разобраться, пожалуйста
Доп вопросы
2.0
еще вопрос касательно System.out.println();//System.lineSeparator();
мне сказали что вместо всяких хардкодов в виде ("\n") или подобного нужно писать System.lineSeparator. Я правильно понимаю, что lineseparator можно использовать только добавляя его в строку так как это символ? и насколько норм просто после функции запилить System.out.println();?
2.1 лямбды
Есть ли у вас источники где почитать доходчиво про Стримы и Лямбды.