Skip to content

Instantly share code, notes, and snippets.

@josinSbazin
Created July 20, 2016 23:12
Show Gist options
  • Save josinSbazin/f2a92346a9f1124afbd31a1db53fdaf7 to your computer and use it in GitHub Desktop.
Save josinSbazin/f2a92346a9f1124afbd31a1db53fdaf7 to your computer and use it in GitHub Desktop.
level19.lesson10.home06
package com.javarush.test.level19.lesson10.home06;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/* Замена чисел
1. В статическом блоке инициализировать словарь map парами [число-слово] от 0 до 12 включительно
Например, 0 - "ноль", 1 - "один", 2 - "два"
2. Считать с консоли имя файла
3. Заменить все числа на слова используя словарь map
4. Результат вывести на экран
5. Закрыть потоки. Не использовать try-with-resources
Пример данных:
Это стоит 1 бакс, а вот это - 12 .
Переменная имеет имя file1.
110 - это число.
Пример вывода:
Это стоит один бакс, а вот это - двенадцать .
Переменная имеет имя file1.
110 - это число.
*/
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 reader = new BufferedReader(new InputStreamReader(System.in));
String fileName = reader.readLine();
reader.close();
File file = new File(fileName);
if (!file.exists()) return;
StringBuilder text = new StringBuilder();
Scanner sc = new Scanner(file);
Pattern p = Pattern.compile("(\\b1[0-2]\\b|\\b[0-9]\\b)");
while (sc.hasNextLine()) {
String temp = sc.nextLine();
Matcher m = p.matcher(temp);
while (m.find()) {
temp = temp.replaceFirst("(\\b1[0-2]\\b|\\b[0-9]\\b)", map.get(Integer.parseInt(m.group(1))));
}
if (sc.hasNextLine()) System.out.println(temp);
else System.out.print(temp);
}
sc.close();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment