java - 如何使用输入来获取列表中的特定元素?

标签 java if-statement for-loop arraylist user-input

我是 Java/编程新手,我正在尝试编写一个简单的程序,如果该元素等于某些用户输入,则从列表中获取该元素。我使用 for 循环和 if 语句来实现此目的,但即使用户输入和元素匹配,编程也不会将元素打印到屏幕上。如果有人可以解释为什么这不起作用,将不胜感激。干杯

public static void main(String[] args){

    ArrayList<String> names = new ArrayList<String>();
    String tempObject; 
    String findName;

    names.add("John");
    names.add("Ronny");
    names.add("Gona");
    names.add("Gina");

    Scanner Input = new Scanner(System.in);
    System.out.print("Search list for: ");
    findName = Input.nextLine();

    for (int i = 0; i < names.size(); i++){
        tempObject =  names.get(i);

        if (tempObject == findName){
            System.out.print("\n" + tempObject);
        }
    }
}

最佳答案

给你:

if (tempObject.equals(findName)){
   System.out.print("\n" + tempObject);
}

对于对象,即String,始终使用方法equals(),因为==将比较引用,而不是值(或什么)在 equals() 方法中设置 - 在 String 中,它将比较大小,然后比较同一位置的每个 char 如果它们相等 - 另外,如果您需要,您有一个名为 equalsIgnoreCase 的方法 - 有时,最好将其用于用户输入)。

对于基元,您必须使用 ==

关于java - 如何使用输入来获取列表中的特定元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37672912/

相关文章:

c - 在 C 中看起来像三角形的输出

php - if 语句或 while 循环在 php 中对我失败

java - 使用多行 "if"或 "ands"在 Java 中格式化 "ors"语句的正确方法是什么?

c++ - 如何计算 “numbers in for”的数量

java - 刷新简单验证码

grails - Groovy 1.5.x/Grails 1.0.x If-Else语句错误

java - 从数组创建的字符串不断返回 null

java - Maven 程序集插件模块集源指令不包含任何文件,并且与包含的模块不匹配

java - 如何从动态生成的JavaFX PieChart 中获取数据?

java - Windows Azure cspack.exe 是开源的吗?