我是 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/