回答編集履歴
1
問題の発生原因を追記
test
CHANGED
@@ -1,10 +1,28 @@
|
|
1
|
-
|
1
|
+
- 「文字列HelloWorld」から「HelloWorld」を見つける
|
2
2
|
|
3
|
-
|
3
|
+
- 見つかった「HelloWorld」のそれぞれの文字が、「文字列HelloWorld」の何文字目にあるか表示する(「HelloWorld」の順番通り)
|
4
4
|
|
5
5
|
|
6
6
|
|
7
7
|
ということをしたいのだと想定して回答いたします。
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
重複している文字の番号が一緒になってしまう原因としては、indexOfメソッドが、一番左の文字から一文字ずつ順番に見て行って、「一番最初に見つかった場所の番号(インデックス)を返す」からです。
|
12
|
+
|
13
|
+
"Hello World"の中に、"l"は2つあって、1つ目は3文字目、2つ目は4文字目ですが、indexOfメソッドでは一番最初の"l"の場所が返ってくるので、何度実行しても結果は変わらないわけですね。
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
今回は、
|
18
|
+
|
19
|
+
- まず「HelloWorld」という文字列が含まれる場所を探す
|
20
|
+
|
21
|
+
- その最初の文字の番号に1ずつ足していけば、全ての文字の番号が分かる
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
ことを利用して作ってみました。
|
8
26
|
|
9
27
|
|
10
28
|
|