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

标签 java position

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/

相关文章:

HTML+CSS : How to add shadow (as image) to image?

java - servlet 扩展另一个 servlet

java - 不使用注释的 Jackson 多态反序列化

java - S 扩展 S 的 ArrayList 是语言中有用的构造还是只是语法副作用

java - jxls - 多行(列表)绑定(bind)不起作用

gcc - 编译错误gcc -lpthread位置

html - 在css中对齐一个固定的元素

Java 在 Web 应用程序的静态映射中存储字节 [] - OutOfMemoryError

JavaScript/HTML : How to position object to right of page?

jquery - 如何相对于点击定位 400 x 400px 弹出 div,保持在屏幕 View 中