Пол дня ковырялся, отлепляя точку от 12.
Но опять что-то не то.
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.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 {
printChangesDataFile(getFileName());
}
private static String getFileName() throws IOException {
try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in))){
return reader.readLine();
// return "/home/someboy/Документы/test1.txt";
}
}
private static void printChangesDataFile(String fileName) throws IOException {
try (BufferedReader reader = new BufferedReader(new FileReader(fileName))){
while (reader.ready()) {
String line = reader.readLine();
StringBuilder builder = new StringBuilder(line);
for(String elem: builder.toString().split(" ")){
if(isNumeric(getStrip(elem))) {
if(map.containsKey(Integer.parseInt(getStrip(elem)))) {
getChangeString(elem, builder);
}
}
}
System.out.println(builder);
}
}
}
private static String getStrip(String str) {
return str.replaceAll("\\.", "");
}
private static boolean isNumeric(String str) {
try {Integer.parseInt(str); return true;}
catch (NumberFormatException e) {return false;}
}
private static void getChangeString(String str, StringBuilder builder) {
int strIndex = builder.indexOf(str);
String mapGetValue = map.get(Integer.parseInt(getStrip(str)));
if(str.startsWith(".")) {
builder.replace(strIndex, strIndex + str.length(), "." + mapGetValue);
}
else if(str.endsWith(".")) {
builder.replace(strIndex, strIndex + str.length(), mapGetValue + ".");
}
else {
builder.replace(strIndex, strIndex + str.length(), mapGetValue);
}
}
}