質問編集履歴

1

タイトルをかえました

2020/07/02 22:02

投稿

tapipi
tapipi

スコア13

test CHANGED
File without changes
test CHANGED
@@ -15,163 +15,3 @@
15
15
  「\s+」1つ以上のスペースの正規表現というのは検索できたのですが、
16
16
 
17
17
  これ全体で何を指しているのかわかりません…(わかり次第追記はしていくつもりです)
18
-
19
-
20
-
21
-
22
-
23
- ### 該当のソースコード
24
-
25
-
26
-
27
- ```java
28
-
29
- package practice.test20160812;
30
-
31
-
32
-
33
- import java.io.BufferedReader;
34
-
35
- import java.io.FileNotFoundException;
36
-
37
- import java.io.FileReader;
38
-
39
- import java.io.IOException;
40
-
41
- import java.util.ArrayList;
42
-
43
- import java.util.Collections;
44
-
45
- import java.util.HashMap;
46
-
47
- import java.util.List;
48
-
49
- import java.util.Map;
50
-
51
-
52
-
53
- public class Accumulate {
54
-
55
-
56
-
57
- private static final String FILE_PATH = "resource\RAMBLES_IN_FLORIDA_PART_1.txt";
58
-
59
-
60
-
61
- private static final String SEPARATOR = "(\s+?|\.|,|;)";
62
-
63
-
64
-
65
- public static void main(String[] args) {
66
-
67
-
68
-
69
- // 集計
70
-
71
- Map<String, Integer> map = new HashMap<>();
72
-
73
- try (FileReader fr = new FileReader(FILE_PATH);
74
-
75
- BufferedReader br = new BufferedReader(fr)){
76
-
77
- String line;
78
-
79
- while ((line = br.readLine()) != null) {
80
-
81
- String[] words = line.split(SEPARATOR);
82
-
83
- for (String word : words) {
84
-
85
- if (!word.isEmpty()) {
86
-
87
- if (map.containsKey(word)) {
88
-
89
- int count = map.get(word) + 1;
90
-
91
- map.put(word, count);
92
-
93
- } else {
94
-
95
- map.put(word, 1);
96
-
97
- }
98
-
99
- }
100
-
101
- }
102
-
103
-
104
-
105
- }
106
-
107
- } catch (FileNotFoundException e) {
108
-
109
- System.out.println("ファイルが見つかりませんでした。");
110
-
111
- } catch (IOException e) {
112
-
113
- System.out.println("読み取りに失敗しました。");
114
-
115
- }
116
-
117
-
118
-
119
- // 出現数で降順に並べ替え、つづりの長さ最大値取得
120
-
121
- List<String> list = new ArrayList<>();
122
-
123
- int maxLengthOfSpelling = 0;
124
-
125
- for (String key : map.keySet()) {
126
-
127
- list.add(key);
128
-
129
-
130
-
131
- if (maxLengthOfSpelling < key.length()) {
132
-
133
- maxLengthOfSpelling = key.length();
134
-
135
- }
136
-
137
- }
138
-
139
- Collections.sort(list, (o1, o2) -> {
140
-
141
- return - map.get(o1) + map.get(o2);
142
-
143
- });
144
-
145
-
146
-
147
- // 上位10件出力
148
-
149
- System.out.println("出現回数トップ10");
150
-
151
- String format = "%-" + maxLengthOfSpelling + "s: %3d";
152
-
153
- for (String word : list) {
154
-
155
- int count = map.get(word);
156
-
157
- if (10 <= count) {
158
-
159
- System.out.printf(format, word, count);
160
-
161
- System.out.println();
162
-
163
- }
164
-
165
- }
166
-
167
-
168
-
169
-
170
-
171
- }
172
-
173
-
174
-
175
- }
176
-
177
- ```