回答編集履歴

4

\+1がいらなかった

2017/06/19 15:04

投稿

swordone
swordone

スコア20649

test CHANGED
@@ -58,7 +58,7 @@
58
58
 
59
59
  if (0x2460 <= ch[i] && ch[i] <= 0x2473) {
60
60
 
61
- builder.append("\u001B\u0024\u0042\u002D").append((char)(0x21 + (ch[i] - 0x2460) + 1)).append("\u001B\u0028\u0042");
61
+ builder.append("\u001B\u0024\u0042\u002D").append((char)(0x21 + (ch[i] - 0x2460))).append("\u001B\u0028\u0042");
62
62
 
63
63
  }
64
64
 

3

中括弧の対応を修正

2017/06/19 15:04

投稿

swordone
swordone

スコア20649

test CHANGED
@@ -40,6 +40,8 @@
40
40
 
41
41
  }
42
42
 
43
+ }
44
+
43
45
  return builder.toString();
44
46
 
45
47
  }

2

まとめて変換

2017/06/19 14:51

投稿

swordone
swordone

スコア20649

test CHANGED
@@ -26,7 +26,7 @@
26
26
 
27
27
  continue;
28
28
 
29
- case '\u2460': //②のUnicode
29
+ case '\u2461': //②のUnicode
30
30
 
31
31
  builder.append("\u001B\u0024\u0042\u002D\u0022\u001B\u0028\u0042");
32
32
 
@@ -45,3 +45,19 @@
45
45
  }
46
46
 
47
47
  ```
48
+
49
+ なお、丸数字からの変換規則はよくわかりませんが、5文字目が単純に順番に対応するだけなら、
50
+
51
+ まとめてこう書けそうな気がします。
52
+
53
+ ```java
54
+
55
+ // 丸付き1~20までに対応するUnicode
56
+
57
+ if (0x2460 <= ch[i] && ch[i] <= 0x2473) {
58
+
59
+ builder.append("\u001B\u0024\u0042\u002D").append((char)(0x21 + (ch[i] - 0x2460) + 1)).append("\u001B\u0028\u0042");
60
+
61
+ }
62
+
63
+ ```

1

シングルクォートの修正忘れ他

2017/06/19 14:46

投稿

swordone
swordone

スコア20649

test CHANGED
@@ -1,6 +1,6 @@
1
- なぜこんなに無駄に行数長くしているのですか?
1
+ なぜこんなに無駄に行数長くしているのですか?Unicodeのところまとめて文字列リテラルにすればいいのに。
2
2
 
3
- [StringBuilder](https://docs.oracle.com/javase/jp/8/docs/api/java/lang/StringBuilder.html)という便利なクラスがありまして…
3
+ また、[StringBuilder](https://docs.oracle.com/javase/jp/8/docs/api/java/lang/StringBuilder.html)という便利なクラスがありまして…
4
4
 
5
5
  ```java
6
6
 
@@ -26,7 +26,7 @@
26
26
 
27
27
  continue;
28
28
 
29
- case \u2460: //②のUnicode
29
+ case '\u2460': //②のUnicode
30
30
 
31
31
  builder.append("\u001B\u0024\u0042\u002D\u0022\u001B\u0028\u0042");
32
32