オブジェクトの比較をするプログラムを理解します。
新聞のタイトルに「オカピ」と入っている場合、タイトルの後ろに「green」と出力するプログラムを作ります。
まずは、プログラムを作ってみましょう。
タイトルに「オカピ」と入っている場合に「green」と出力します。
このプログラムで、今まででてこなかった
String title = titles[i].substring(0,3);
をまず覚えましょう。
substring() メソッドは、String クラスのメソッドで、二つの数字 i 、j を引数として渡すと、String の値の i 番目から、j
- 1 番目までを返却する機能を持っています。ここでは、後で「オカピ」であるか調べるために、先頭から3文字取得します。
このプログラムは一見あっているように見えますが、間違っています。では、何が間違っているか見ていきましょう。
オカピ新聞 green ランランランド新聞 Java 新聞 オカピ臨時新聞 green ランランランド新聞
// 配列に初期値を設定しています。
String[] titles = { "オカピ新聞", "ランランランド新聞",
"Java 新聞", "オカピ臨時新聞",
"ランランランド新聞" };
String greenTitle = "オカピ";
/**
* 新聞名を配列より 0 〜 4 まで、5つ出力します。
* ただし、オカピ新聞の場合、その後ろに green と出力します。
*/
public void titleOut() {
for (int i = 0; i < 5; i++) {
String title = titles[i].substring(0,3);
if (title == greenTitle) {
System.out.println(titles[i] + " green");
} else {
System.out.println(titles[i]);
}
}
}