-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path18_FilterText_v1
More file actions
94 lines (60 loc) · 2.94 KB
/
Copy path18_FilterText_v1
File metadata and controls
94 lines (60 loc) · 2.94 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
package lesson18;
/* Создать программу, фильтрующую текст, введенный с клавиатуры. Задача программы
* заключается в считывании текста и отбражении его на экране , используя замену
* заданного набора символов на пробелы. Программа должна предлагать следующие варианты
* наборов символов для фильтрации:
* Символы латинского алфавита
* Символы кириллицы
* Символы пунктуации
* Цифры
* Фильтры могут накладываться последовательно. При повторной установке существующего
* фильтра данный фильтр должен сниматься.
*/
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.stream.Stream;
import java.io.IOException;
import java.io.File;
import java.io.FileInputStream;
public class FilterText {
public static void main(String[] args) {
File file = new File("d:\\test.txt");
System.out.println("Считываем текст из файла: " + file.getAbsolutePath());
System.out.println("\n==========\n");
// "добираемся" до текста из файла через BufferedReader
try (BufferedReader bufReader = new BufferedReader(
new InputStreamReader (new FileInputStream(file)))) {
// поток строк
Stream <String> stringsOfFile = bufReader.lines();
/* так можно просто вывести все строки
* strings.forEach(System.out::println);
*/
// переводим поток в массив строк
String [] stringArray = stringsOfFile.toArray(String[]::new);
// фильтр знаков пунктуации
String symbol = ",.;:!?-";
// для каждой строки, взятой из файла:
for (String str : stringArray) {
char [] charsOfLine = str.toCharArray(); // переводим строку в массив символов
String exitString = "";
// для каждого символа строки
for (char c : charsOfLine) {
for (int i=0; i<symbol.length(); i++) {
// замена символа пробелом
if (c == symbol.charAt(i)) {
c = ' ';
break;
}
}
// наполняем новою строку символами текущей строки
// с заменой на пробелы знаков пунктуации
exitString += c;
}
System.out.println(exitString);
}
} catch (IOException e) {
}
// System.out.println("Латиница - фильтровать?");
// boolean latinFilter = false;
}
}