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

回答編集履歴

1

ソースにコメントを追記

2017/07/21 05:41

投稿

mr-hisa-child
mr-hisa-child

スコア294

answer CHANGED
@@ -25,23 +25,29 @@
25
25
  BufferedReader b = new BufferedReader(new InputStreamReader(System.in));
26
26
 
27
27
  String input = b.readLine();
28
- int pos = 0;
29
28
 
29
+ int pos = 0; // substringの開始位置
30
+
30
31
  for (int i = 0; i < input.length(); i++) {
31
32
 
33
+ // 使用できる文字がなくなったら、出力をやめる
32
34
  if(pos == ALPHABET.length()) break;
33
35
 
34
36
  // 1文字ずつ取り出す
35
37
  int num = Integer.parseInt(input.substring(i, i + 1));
36
38
 
39
+ // substring()終了位置設定
37
40
  int endPos = pos + num;
38
41
 
39
42
  if (endPos > ALPHABET.length()) {
43
+ // 文字を取り出す際に取り出す終了位置がALPHABETの文字数を超える場合(z以降を取得しようとする場合)は、最後のzまでを取得する
40
44
  endPos = ALPHABET.length();
41
45
  }
46
+
42
-
47
+ // 定数ALPHABETから、開始位置と終了位置で文字を抽出し出力する
43
48
  System.out.println(ALPHABET.substring(pos, endPos));
44
49
 
50
+ // 次の開始位置を設定
45
51
  pos = endPos;
46
52
  }
47
53