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

回答編集履歴

4

\+1がいらなかった

2017/06/19 15:04

投稿

swordone
swordone

スコア20675

answer CHANGED
@@ -28,6 +28,6 @@
28
28
  ```java
29
29
  // 丸付き1~20までに対応するUnicode
30
30
  if (0x2460 <= ch[i] && ch[i] <= 0x2473) {
31
- builder.append("\u001B\u0024\u0042\u002D").append((char)(0x21 + (ch[i] - 0x2460) + 1)).append("\u001B\u0028\u0042");
31
+ builder.append("\u001B\u0024\u0042\u002D").append((char)(0x21 + (ch[i] - 0x2460))).append("\u001B\u0028\u0042");
32
32
  }
33
33
  ```

3

中括弧の対応を修正

2017/06/19 15:04

投稿

swordone
swordone

スコア20675

answer CHANGED
@@ -19,6 +19,7 @@
19
19
  default:
20
20
  builder.append(ch[i]);
21
21
  }
22
+ }
22
23
  return builder.toString();
23
24
  }
24
25
  ```

2

まとめて変換

2017/06/19 14:51

投稿

swordone
swordone

スコア20675

answer CHANGED
@@ -12,7 +12,7 @@
12
12
  case '\u2460': //①のUnicode
13
13
  builder.append("\u001B\u0024\u0042\u002D\u0021\u001B\u0028\u0042");
14
14
  continue;
15
- case '\u2460': //②のUnicode
15
+ case '\u2461': //②のUnicode
16
16
  builder.append("\u001B\u0024\u0042\u002D\u0022\u001B\u0028\u0042");
17
17
  continue;
18
18
  // 中略
@@ -21,4 +21,12 @@
21
21
  }
22
22
  return builder.toString();
23
23
  }
24
+ ```
25
+ なお、丸数字からの変換規則はよくわかりませんが、5文字目が単純に順番に対応するだけなら、
26
+ まとめてこう書けそうな気がします。
27
+ ```java
28
+ // 丸付き1~20までに対応するUnicode
29
+ if (0x2460 <= ch[i] && ch[i] <= 0x2473) {
30
+ builder.append("\u001B\u0024\u0042\u002D").append((char)(0x21 + (ch[i] - 0x2460) + 1)).append("\u001B\u0028\u0042");
31
+ }
24
32
  ```

1

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

2017/06/19 14:46

投稿

swordone
swordone

スコア20675

answer CHANGED
@@ -1,5 +1,5 @@
1
- なぜこんなに無駄に行数長くしているのですか?
1
+ なぜこんなに無駄に行数長くしているのですか?Unicodeのところまとめて文字列リテラルにすればいいのに。
2
- [StringBuilder](https://docs.oracle.com/javase/jp/8/docs/api/java/lang/StringBuilder.html)という便利なクラスがありまして…
2
+ また、[StringBuilder](https://docs.oracle.com/javase/jp/8/docs/api/java/lang/StringBuilder.html)という便利なクラスがありまして…
3
3
  ```java
4
4
  public String convert(String str){
5
5
  if(str == null){
@@ -12,7 +12,7 @@
12
12
  case '\u2460': //①のUnicode
13
13
  builder.append("\u001B\u0024\u0042\u002D\u0021\u001B\u0028\u0042");
14
14
  continue;
15
- case \u2460: //②のUnicode
15
+ case '\u2460': //②のUnicode
16
16
  builder.append("\u001B\u0024\u0042\u002D\u0022\u001B\u0028\u0042");
17
17
  continue;
18
18
  // 中略