2日ほど悩み続けましたが、文字列が等価かどうかを調べるには==ではなく、equals()を使用する必要があるようです。TroubleShootingに載っています。
なんという仕様でしょう!
とは言えど、なぜか
String a="Test";
String b="Test";
if(a==b){println("a==b");}else{println("a!=b");}
と
String c="Test";
String d="Test";
if(c.equals(d)){println("c==d");}else{println("c!=d");}
はどちらでもOKです。
でも配列要素を扱ったときに==はうまく判定できていませんでした。なぞです。
が、もっと効率的に配列要素を比較するには、JavaにはbinarySearch()があるようなので、これは調べてみたいです。たぶん文字列にはちょっと違う方法でしょうけど。
2009年12月23日水曜日
制作・©:のぼる/N.Lab