2つのプライベートフィールドを持つオブジェクトを含むArrayListを検索するメソッドがあります。方法は次のとおりです。
public int searchContactName(String name){
int foundIndex =-1;
for(int i = 0; i < contacts.size(); i++){
if(contacts.get(i).getName() == name){
foundIndex = i;
}
}
return foundIndex;
}
私がこのようにそれを使うならば、それはうまく働きます:
searchContactName("xyName");
しかし、thinsのようなscenner.next()で同じ名前で使用しようとすると、
String name = scanner.next();
searchContactName(name);
それは私に-1を与えます。わかりません。入力を何らかの方法でフォーマットする必要がありますか?同じタイプですか、それともスキャナーを使うとどう違うのですか?
==
2つのオブジェクトがハードコーディング文字列リテラルのために真であることを起こるオブジェクトの同じインスタンスであることをオペレータがチェック。正しいこれをチェックする方法は、しかし、であるequals
2つのオブジェクトが同じ値を持つかどうかをテストする方法:
public int searchContactName(String name){
int foundIndex =-1;
for (int i = 0; i < contacts.size(); i++){
if (contacts.get(i).getName().equals(name)) { // here!
foundIndex = i;
}
}
return foundIndex;
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加