Tips

【Java】プログラム作成練習問題20

【Java】プログラム作成練習問題20

プログラム作成問題の第20回となります。

※この出題形式に関しては答えは1つではありません。
解答例はできるだけ複数載せるつもりですが、問題文の要件を満たしていれば正解として下さい。

問題

文字列の中から1文字を検索するプログラムを作成せよ。
ヒットすればその文字のインデックスを、ヒットしなければ-1を出力すること。
検索文字が複数ある場合は、最も小さいインデックスを出力すること。
例) abcabcからcを検索すると2と出力される。

解答例1
[java] package exercise;

public class Exercise_020 {
public static void main(String[] args) {
String str = "abcabc";
char seachChar = ‘c’;
int result = -1;
for(int i = 0; i < str.length(); i++) {
if(str.charAt(i) == seachChar) {
result = i;
break;
}
}
System.out.println(result);
}
}
[/java]


解答例2
[java] package exercise;

public class Exercise_020 {
public static void main(String[] args) {
String str = "abcabc";
char seachChar = ‘c’;

System.out.println(str.indexOf(seachChar));
}
}
[/java] 要件で書いたものは実は既にStringクラスにindexOfメソッドとして定義されています。


間違い例

[java] package exercise;

public class Exercise_020 {
public static void main(String[] args) {
String str = "abcabc";
char seachChar = ‘c’;
int result = -1;
for(int i = 0; i < str.length(); i++) {
if(str.charAt(i) == seachChar) {
result = i;
}
}
System.out.println(result);
}
}
[/java] 解答例1と違い、breakの記述がありません。
この場合cのインデックスが2と検索できても、2つ目のcのインデックスで上書きしてしまいます。


  

新連載はじまりました!新Java基礎 連載リンク

はじめてのJAVA 連載

Recent News

Recent Tips

Tag Search