Tips

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

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

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

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

問題

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

解答例1
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);
	}
}

解答例2
package exercise;

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

		System.out.println(str.indexOf(seachChar));
	}
}

要件で書いたものは実は既にStringクラスにindexOfメソッドとして定義されています。


間違い例

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);
	}
}

解答例1と違い、breakの記述がありません。
この場合cのインデックスが2と検索できても、2つ目のcのインデックスで上書きしてしまいます。


  

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

はじめてのJAVA 連載

Recent News

Recent Tips

Tag Search