質問編集履歴

3

実行結果の追記

2019/08/07 08:37

投稿

nanimowakaranai
nanimowakaranai

スコア20

test CHANGED
File without changes
test CHANGED
@@ -159,3 +159,13 @@
159
159
  pet apple:banana:dog:cat
160
160
 
161
161
  ```
162
+
163
+ ```ここに言語を入力
164
+
165
+ 想定実行結果
166
+
167
+ fruit apple:banana
168
+
169
+ pet dog:cat
170
+
171
+ ```

2

追加

2019/08/07 08:37

投稿

nanimowakaranai
nanimowakaranai

スコア20

test CHANGED
File without changes
test CHANGED
@@ -15,6 +15,14 @@
15
15
  key→果物 value→(りんご、ばなな)
16
16
 
17
17
  key→動物 value(このvalueと↑のvalueは違う変数)→(像、キリン)とするにはどうすればいいのでしょうか
18
+
19
+
20
+
21
+ 追記
22
+
23
+ 問題のコードを追加しました。書き方が気持ち悪いというのは自覚しているのですが今回は見逃してください・・・
24
+
25
+
18
26
 
19
27
  ```java
20
28
 

1

コード追加

2019/08/07 08:00

投稿

nanimowakaranai
nanimowakaranai

スコア20

test CHANGED
File without changes
test CHANGED
@@ -15,3 +15,139 @@
15
15
  key→果物 value→(りんご、ばなな)
16
16
 
17
17
  key→動物 value(このvalueと↑のvalueは違う変数)→(像、キリン)とするにはどうすればいいのでしょうか
18
+
19
+ ```java
20
+
21
+ import java.io.*;
22
+
23
+ import java.lang.reflect.Array;
24
+
25
+ import java.nio.file.Files;
26
+
27
+ import java.nio.file.Path;
28
+
29
+ import java.nio.file.Paths;
30
+
31
+ import java.util.*;
32
+
33
+
34
+
35
+
36
+
37
+
38
+
39
+ public class Test {
40
+
41
+
42
+
43
+
44
+
45
+ public static void main(String args[]) {
46
+
47
+ List<String> value = new ArrayList<>();
48
+
49
+ List<List<String>> values = new ArrayList<>();
50
+
51
+ List<String> lines = new ArrayList<>();
52
+
53
+
54
+
55
+ HashMap<String, List<String>> tsv = new HashMap<>();
56
+
57
+ try {
58
+
59
+ Path path = Paths.get("test.tsv");
60
+
61
+ lines = Files.readAllLines(path);
62
+
63
+
64
+
65
+ } catch (IOException ie) {
66
+
67
+ System.out.println("入出力エラーです");
68
+
69
+ }
70
+
71
+ Test.sort_tsv(tsv,value,values,lines);
72
+
73
+ Test.solve(tsv,value);
74
+
75
+
76
+
77
+
78
+
79
+ }
80
+
81
+ public static void sort_tsv(HashMap<String, List<String>> tsv, List<String> child_value, List<List<String>> parent_value, List<String> line){
82
+
83
+ for(int i = 0; i < line.size();i++){
84
+
85
+ String[] split_line = line.get(i).split("\t", 0);
86
+
87
+ if (tsv.containsKey(split_line[0])) {
88
+
89
+ tsv.get(split_line[0]).add(split_line[1] + ":");
90
+
91
+ tsv.put(split_line[0], tsv.get(split_line[0]));
92
+
93
+ } else {
94
+
95
+ parent_value.add(child_value);
96
+
97
+ child_value.add(i, split_line[1] + ":");
98
+
99
+ tsv.put(split_line[0], parent_value.get(parent_value.size() - 1));
100
+
101
+ }
102
+
103
+ }
104
+
105
+ }
106
+
107
+ public static void solve(HashMap<String,List<String>> tsv, List<String> child_value){
108
+
109
+ for (String key : tsv.keySet()) {
110
+
111
+ String val = String.join("", child_value);
112
+
113
+ StringBuilder value_cut = new StringBuilder(val);
114
+
115
+ value_cut.setLength(value_cut.length() - 1);
116
+
117
+ System.out.println(key + "\t" + value_cut);
118
+
119
+ }
120
+
121
+ }
122
+
123
+ }
124
+
125
+
126
+
127
+
128
+
129
+ ```
130
+
131
+ ```tsv
132
+
133
+ fruit apple
134
+
135
+ fruit banana
136
+
137
+ pet dog
138
+
139
+ pet cat
140
+
141
+ ```
142
+
143
+
144
+
145
+ ```実行結果
146
+
147
+ 実行結果
148
+
149
+ fruit apple:banana:dog:cat
150
+
151
+ pet apple:banana:dog:cat
152
+
153
+ ```