文字列の比較には、Stringクラスのメソッド equals や compareTo が使えます。
【 メソッドの形式 】boolean equals( Object s )現在のオブジェクトの文字列と引数に指定された s の内容を比較し、同じなら true、違うときは false を返します。
int compareTo( String 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 で ・・・)
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メソッドに値を渡すと、フォーマットした文字列が返されます。