回答編集履歴

1

問題の発生原因を追記

2021/06/17 04:20

投稿

hallen0225
hallen0225

スコア587

test CHANGED
@@ -1,10 +1,28 @@
1
- 「文字列HelloWorld」から「HelloWorld」を見つける
1
+ - 「文字列HelloWorld」から「HelloWorld」を見つける
2
2
 
3
- 見つかった「HelloWorld」のそれぞれの文字が、「文字列HelloWorld」の何文字目にあるか表示する(「HelloWorld」の順番通り)
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