teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

改正

2017/01/12 04:32

投稿

退会済みユーザー
answer CHANGED
@@ -113,7 +113,7 @@
113
113
  while ((dat = br.readLine()) != null) {
114
114
  if (dat.length() == 0)
115
115
  continue;
116
- String as = " ,\t";
116
+
117
117
  String[] s = dat.split(",\t");
118
118
  s[0] = s[0].trim();
119
119
  s[1] = s[1].trim();

2

改正

2017/01/12 04:32

投稿

退会済みユーザー
answer CHANGED
@@ -85,4 +85,96 @@
85
85
  }
86
86
 
87
87
  }
88
+ ```
89
+
90
+ サンプルとして提示したデータと区切り文字が異なっていたので、実際に使用されたデータの区切り文字に対してコードを以下に組みなおしました
91
+
92
+ ```java
93
+ import java.io.*;
94
+ import java.util.*;
95
+
96
+ class GOV {
97
+
98
+ public static void main(String[] args) {
99
+ HashSet<String> uID = new HashSet<>();
100
+ HashSet<String> vID = new HashSet<>();
101
+ HashMap<String, Integer> uSID = new HashMap<>();
102
+ HashMap<String, Integer> vSID = new HashMap<>();
103
+ ArrayList<String> uIID = new ArrayList<>();
104
+ ArrayList<String> vIID = new ArrayList<>();
105
+ ArrayList<Integer> uIIID = new ArrayList<>();
106
+ ArrayList<Integer> vIIID = new ArrayList<>();
107
+ ArrayList<Integer> star = new ArrayList<>();
108
+
109
+ try (BufferedReader br = new BufferedReader(new FileReader("17.txt"))) {
110
+
111
+ String dat = "";
112
+ dat = br.readLine();
113
+ while ((dat = br.readLine()) != null) {
114
+ if (dat.length() == 0)
115
+ continue;
116
+ String as = " ,\t";
117
+ String[] s = dat.split(",\t");
118
+ s[0] = s[0].trim();
119
+ s[1] = s[1].trim();
120
+ s[2] = s[2].trim();
121
+
122
+ uID.add(s[0]);
123
+ vID.add(s[1]);
124
+
125
+ uIID.add(s[0]);
126
+ vIID.add(s[1]);
127
+
128
+ star.add(Integer.parseInt(s[2]));
129
+
130
+ }
131
+
132
+ } catch (Exception e) {
133
+ e.printStackTrace();
134
+ }
135
+
136
+ int co = 0;
137
+ for (String s1 : uID) {
138
+ co++;
139
+ uSID.put(s1, co);
140
+ }
141
+ co = 0;
142
+ for (String s1 : vID) {
143
+ co++;
144
+ vSID.put(s1, co);
145
+ }
146
+
147
+ for (String s1 : uIID) {
148
+ uIIID.add(uSID.get(s1));
149
+ }
150
+ for (String s1 : vIID) {
151
+ vIIID.add(vSID.get(s1) + 100);
152
+ }
153
+ System.out.println("userID\tvenueID\tstar ");
154
+ for (int a = 0; a < uIID.size(); a++) {
155
+ System.out.print(uIIID.get(a) + "\t");
156
+ System.out.print(vIIID.get(a) + "\t");
157
+ System.out.print(star.get(a));
158
+ System.out.println();
159
+ }
160
+
161
+ try (BufferedWriter br = new BufferedWriter(new FileWriter("18.txt"))) {
162
+ br.write("userID\tvenueID\tstar ");
163
+ br.newLine();
164
+
165
+ for (int a = 0; a < uIID.size(); a++) {
166
+ br.write(uIIID.get(a) + "\t");
167
+ br.write(vIIID.get(a) + "\t");
168
+ br.write(star.get(a) + "");
169
+ if (a != uIIID.size() - 1) {
170
+ br.newLine();
171
+ }
172
+ }
173
+
174
+ } catch (Exception e) {
175
+ }
176
+
177
+ }
178
+
179
+ }
88
180
  ```

1

改正

2017/01/12 04:29

投稿

退会済みユーザー
answer CHANGED
@@ -21,7 +21,7 @@
21
21
  ArrayList<Integer> vIIID = new ArrayList<>();
22
22
  ArrayList<Integer> star = new ArrayList<>();
23
23
 
24
- try (BufferedReader br = new BufferedReader(new FileReader("17.txt"))) {
24
+ try (BufferedReader br = new BufferedReader(new FileReader("17.txt"))) {//入力ファイルパス
25
25
 
26
26
  String dat = "";
27
27
  dat = br.readLine();
@@ -66,7 +66,7 @@
66
66
  System.out.println();
67
67
  }
68
68
 
69
- try (BufferedWriter br = new BufferedWriter(new FileWriter("18.txt"))) {
69
+ try (BufferedWriter br = new BufferedWriter(new FileWriter("18.txt"))) {//出力ファイルパス
70
70
  br.write("userID\tvenueID\tstar ");
71
71
  br.newLine();
72
72