.
package com.javarush.task.task19.task1924;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
/*
Замена чисел
*/
public class Solution {
public static Map<Integer, String> map = new HashMap<Integer, String>();
static {
map.put(0, "ноль");
map.put(1, "один");
map.put(2, "два");
map.put(3, "три");
map.put(4, "четыре");
map.put(5, "пять");
map.put(6, "шесть");
map.put(7, "семь");
map.put(8, "восемь");
map.put(9, "девять");
map.put(10, "десять");
map.put(11, "одиннадцать");
map.put(12, "двенадцать");
}
public static void main(String[] args) throws IOException {
BufferedReader consoleReader = new BufferedReader(new InputStreamReader(System.in));
BufferedReader fileReader = new BufferedReader(new FileReader(consoleReader.readLine()));
consoleReader.close();
ArrayList<String> strings = new ArrayList<>();
while (fileReader.ready())
{
strings.add(fileReader.readLine());
}
sort(strings).forEach(System.out::println);
fileReader.close();
}
public static ArrayList<String> sort(ArrayList<String> strings) {
ArrayList<String> solution = new ArrayList<>();
for (String currentString : strings)
{
StringBuilder correctable = new StringBuilder();
StringBuilder toEdit = new StringBuilder();
for (char c : currentString.toCharArray())
{
if (c == ' ' || c == '.')
{
if (isNumeric(toEdit.toString()) && Integer.parseInt(toEdit.toString()) <= 12)
{
correctable.append(map.get(Integer.parseInt(toEdit.toString())));
}
else
{
correctable.append(toEdit);
}
switch (c)
{
case ' ' :
correctable.append(" ");
break;
case '.' :
correctable.append(".");
break;
}
toEdit.delete(0, 100);
}
else
{
toEdit.append(c);
}
}
solution.add(correctable.toString());
}
return solution;
}
public static boolean isNumeric(String str)
{
return str.matches("-?\\d+(\\.\\d+)?"); //match a number with optional '-' and decimal.
}
}