エアRV:
StackOverflowの上こんにちは、開発者!私は、この演習の問題を抱えている:「入力にキーボードを使用してN名のリストをユーザーに確認するプログラムを作成し、ユーザーは、検索のための名前を入力し続けるプログラムがリストにこの名前の位置をプリントアウトしなければなりませんで。名前がリストに表示されていない場合は、プログラムが値をプリントアウトする必要があります-1。」ここに私のコードは次のとおりです。
package Tut_01;
import java.util.ArrayList;
import java.util.Scanner;
public class Ex_04 {
public static void main(String[] args) {
Scanner sc = new Scanner (System.in);
ArrayList<String> elements = new ArrayList<> ();
System.out.print ("How many numbers do you want to input: ");
int n = sc.nextInt (); // Count numbers that user want to input
// Ask the user input values
for (int i = 0; i < n; i++) {
System.out.print ("Enter your name " + (i + 1) + ": ");
String name = sc.next ();
elements.add (name);
}
System.out.println ("Which name do you want to search ?");
String searchName = sc.next ();
// Problem?
for (int p = 0; p < n; p++) {
if (searchName == elements.get (p)) {
System.out.println ("Your name is at index " + p + ": " + elements.get (p));
}
}
}
ここに私のコンソールは次のとおりです。
How many numbers do you want to input: 2
Enter your name 1: Hoa
Enter your name 2: Hieu
Which name do you want to search ?
Hoa
Process finished with exit code 0
私は私のコードがインデックスの位置を印刷するのではなく、そこに停止した理由を私は知らないわけ。誰もがこの問題を知っていますか?私を示してくれてありがとう!
reuseman:
あなたは間違った方法で文字列を比較しています。あなたが使用することはできませんので、文字列は、オブジェクトではありませんプリミティブです==
。
適切な方法は以下のとおりです。
searchName.equals(elements.get(p))