Thinkers'Studio
JavaとC言語の自習ツール
文字列比較クイズ( Java版 )

 文字列の比較には、Stringクラスのメソッド equalscompareTo が使えます。

 【 メソッドの形式 】
boolean equals( Object s )
  現在のオブジェクトの文字列と引数に指定された s の内容を比較し、同じなら true、違うときは false を返します。
int compareTo( String s )
  現在のオブジェクトの文字列と引数に指定された s を辞書順で比較します。
  同じならゼロを返し、そうでないときは下記を返します。
       現在のオブジェクト < s のとき   負の値
       現在のオブジェクト > s のとき   正の値


 (では今回のクイズです)
 次のプログラムを見てください。 上記の2つのメソッドと == 演算子を使った、合計3種類の処理を書いています。
 コンパイルを通り、正しく文字列比較の判定が行えるのは (1) 〜 (3) のうち何番でしょう?

class CompareTest {
    public static void main( String[] args ) {
        String str1 = "Hello";
        String str2 = "Hello";

        // -------- (1) --------
        if( str1.compareTo( str2 ) )
            System.out.println( "(1)同じ" );
        else
            System.out.println( "(1)違う" );

        // -------- (2) --------
        if( str1.equals( str2 ) )
            System.out.println( "(2)同じ" );
        else
            System.out.println( "(2)違う" );

        // -------- (3) --------
        str1 += " everyone.";
        str2 += " everyone.";
        if( str1 == str2 )
            System.out.println( "(3)同じ" );
        else
            System.out.println( "(3)違う" );
    }
}

 間違っているものは、その理由も考えてみましょう。
   (答えは、次回の Javaの Tips で ・・・)

前回のクイズの答え: DecimalFormat使用例を下に示します。(前回の問題を見る
import java.text.DecimalFormat;
class CommaIns {
    public static void main( String[] args ) {
        DecimalFormat df = new DecimalFormat( "#,###" );

        System.out.println( df.format( 1234567 ) );
        System.out.println( df.format( -1234567 ) );
    }
}
DecimalFormatクラスのコンストラクタに「3桁ごとにカンマ」のパターンを指定して、オブジェクトを作ります。あとは、formatメソッドに値を渡すと、フォーマットした文字列が返されます。