Я понимаю, что решение не красивое и многабукф...
я уже сделала проверку и на последний символ в строке, чтобы лишнего пробела не было и на последнюю строку, чтобы лишнего энтера не выводило..
взяла на проверку текст из всех возможных вариантов написания с пунктуацией, все равно не принимает.
единственное проверки нету на отрицательные числа, но у нас и нету их в мапе
файл для проверки:
6 баксов - 15 это число 15
1 бакс - это число 1
7 это число 7
12 ewq 3 trf 7 апв 123 рп 1 ку20
1 2 3 4 6, 7. 13
Это стоит 1 бакс, а вот это - 12 .
Переменная имеет имя file1.
110 - это число.\
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 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.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/*
Замена чисел
*/
public class Solution {
public static Map<Integer, String> map = new HashMap<Integer, String>();
static {
map.put(12, "двенадцать");
map.put(11, "одиннадцать");
map.put(10, "десять");
map.put(9, "девять");
map.put(8, "восемь");
map.put(7, "семь");
map.put(6, "шесть");
map.put(5, "пять");
map.put(4, "четыре");
map.put(3, "три");
map.put(2, "два");
map.put(1, "один");
map.put(0, "ноль");
}
public static void main(String[] args) throws IOException {
List<String> list = new ArrayList<>();
try (BufferedReader br = new BufferedReader(new InputStreamReader(System.in))) {
String file = br.readLine();
try (BufferedReader in = new BufferedReader(new FileReader(file))) {
for (;;) {
String line = in.readLine();
if (line == null) break;
String[] words = line.split("\\s");
Pattern pattern = Pattern.compile("\\d");
Pattern pattern2 = Pattern.compile("\\D");
String punct = "";
for (int i = 0; i < words.length; i++) {
String string = words[i];
Matcher matcher = pattern.matcher(words[i]);
Matcher matcher1 = pattern2.matcher(words[i]);
try {
if (matcher.find()) {
if (matcher1.find()) {
string = words[i].substring(0, words[i].length() - 1);
punct = words[i].substring(words[i].length() - 1);
}
if (map.containsKey(Integer.parseInt(string))) {
words[i] = map.get(Integer.parseInt(string)) + punct;
punct = "";
}
}
}
catch (Exception ignore) {}
}
StringBuilder sb = new StringBuilder();
for (int i = 0; i < words.length; i++) {
if (i == words.length - 1) sb.append(words[words.length - 1]);
else sb.append(words[i]).append(" ");
}
list.add(sb.toString());
}
for (int i = 0; i < list.size(); i++) {
if (i == list.size() - 1) System.out.print(list.get(i));
else System.out.println(list.get(i));
}
}
}
}
}