回答編集履歴
2
コードの再変更
test
CHANGED
@@ -6,25 +6,25 @@
|
|
6
6
|
|
7
7
|
class Test {
|
8
8
|
|
9
|
-
static final in
|
9
|
+
static final String t =
|
10
10
|
|
11
|
-
|
11
|
+
"ああいいううええおおかかききくくけけここささししすすせせそそ" +
|
12
12
|
|
13
|
-
|
13
|
+
"たたちちつつつててととなにぬねのはははひひひふふふへへへほほほ" +
|
14
14
|
|
15
|
-
|
15
|
+
"まみむめもややゆゆよよらりるれろわわゐゑをん";
|
16
16
|
|
17
|
-
|
17
|
+
// ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞ
|
18
18
|
|
19
|
-
//
|
19
|
+
// ただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽ
|
20
20
|
|
21
|
-
|
21
|
+
// まみむめもゃやゅゆょよらりるれろゎわゐゑをん
|
22
22
|
|
23
|
-
|
23
|
+
|
24
24
|
|
25
25
|
static char convChar(char c) {
|
26
26
|
|
27
|
-
if (c >= 'ぁ' && c <= 'ん') c
|
27
|
+
if (c >= 'ぁ' && c <= 'ん') c = t.charAt(c - 'ぁ');
|
28
28
|
|
29
29
|
return c;
|
30
30
|
|
@@ -73,3 +73,11 @@
|
|
73
73
|
謎の配列 t の 意味が分かるようにコメントを追加しました。
|
74
74
|
|
75
75
|
String の += は効率が悪そうなので、StringBuffer の append に変更しました。
|
76
|
+
|
77
|
+
|
78
|
+
|
79
|
+
**追記2**
|
80
|
+
|
81
|
+
さらにコードを変更しました。
|
82
|
+
|
83
|
+
変換表を文字列で持てば、文字コードの足し算引き算は不要でした。
|
1
コードの変更
test
CHANGED
@@ -8,13 +8,43 @@
|
|
8
8
|
|
9
9
|
static final int[] t = {
|
10
10
|
|
11
|
+
//ぁあ ぃい ぅう ぇえ ぉお かがきぎくぐけげこご さざしじすずせぜそぞ
|
12
|
+
|
11
13
|
-1,0,-1,0,-1,0,-1,0,-1,0, 0,1,0,1,0,1,0,1,0,1, 0,1,0,1,0,1,0,1,0,1,
|
14
|
+
|
15
|
+
//ただちぢっつづてでとど なにぬねの はばぱひびぴふぶぷへべぺほぼぽ
|
12
16
|
|
13
17
|
0,1,0,1,-1,0,1,0,1,0,1, 0,0,0,0,0, 0,1,2,0,1,2,0,1,2,0,1,2,0,1,2,
|
14
18
|
|
19
|
+
//まみむめも ゃや ゅゆ ょよ らりるれろ ゎわゐゑを ん
|
20
|
+
|
15
|
-
0,0,0,0,0, -1,0,-1,0,-1,0, 0,0,0,0,0, -1,0,0,0,0,
|
21
|
+
0,0,0,0,0, -1,0,-1,0,-1,0, 0,0,0,0,0, -1,0,0,0,0, 0
|
16
22
|
|
17
23
|
};
|
24
|
+
|
25
|
+
static char convChar(char c) {
|
26
|
+
|
27
|
+
if (c >= 'ぁ' && c <= 'ん') c -= t[c - 'ぁ'];
|
28
|
+
|
29
|
+
return c;
|
30
|
+
|
31
|
+
}
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
static String convStr(String s) {
|
36
|
+
|
37
|
+
StringBuilder sb = new StringBuilder();
|
38
|
+
|
39
|
+
for (int i = 0; i < s.length(); i++)
|
40
|
+
|
41
|
+
sb.append(convChar(s.charAt(i)));
|
42
|
+
|
43
|
+
return sb.toString();
|
44
|
+
|
45
|
+
}
|
46
|
+
|
47
|
+
|
18
48
|
|
19
49
|
public static void main(String[] args) {
|
20
50
|
|
@@ -32,30 +62,14 @@
|
|
32
62
|
|
33
63
|
}
|
34
64
|
|
35
|
-
|
36
|
-
|
37
|
-
static String convStr(String s) {
|
38
|
-
|
39
|
-
String t = "";
|
40
|
-
|
41
|
-
for (int i = 0; i < s.length(); i++)
|
42
|
-
|
43
|
-
t += convChar(s.charAt(i));
|
44
|
-
|
45
|
-
return t;
|
46
|
-
|
47
|
-
}
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
static char convChar(char c) {
|
52
|
-
|
53
|
-
if (c >= 'ぁ' && c <= 'ん') c -= t[c - 'ぁ'];
|
54
|
-
|
55
|
-
return c;
|
56
|
-
|
57
|
-
}
|
58
|
-
|
59
65
|
}
|
60
66
|
|
61
67
|
```
|
68
|
+
|
69
|
+
**追記**
|
70
|
+
|
71
|
+
コードを変更しました。
|
72
|
+
|
73
|
+
謎の配列 t の 意味が分かるようにコメントを追加しました。
|
74
|
+
|
75
|
+
String の += は効率が悪そうなので、StringBuffer の append に変更しました。
|