gpt4 book ai didi

java - 如何打印出这个名字在列表中的位置?

转载 作者:行者123 更新时间:2023-12-02 08:50:51 24 4
gpt4 key购买 nike

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

我的意思是我不知道为什么我的代码停在那里而不是打印索引的位置。有人知道这个问题吗?谢谢你给我展示!

最佳答案

您以错误的方式比较字符串。 String 是一个对象而不是基元,因此不能使用 ==

正确的做法是:

searchName.equals(elements.get(p))

关于java - 如何打印出这个名字在列表中的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60785931/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com