【发布时间】:2013-04-11 00:39:39
【问题描述】:
你好再次堆栈溢出.. ers, 我创建了这段代码来顺序搜索数组以找到一个值,在本例中是一个名称。但是我不能让它工作,它不会找到我输入的名字,并且总是返回 -1 的值。
当我将所有类型更改为 INT 并在年龄数组上进行搜索时,它工作了,所以它可能与字符串类型有关?有人可以帮我吗?
public static void main(String[] args) {
String[] name = {"John", "bert", "Elle", "beth"};
String[] sex = {"Male", "Male", "female", "female"};
int[] age = {18, 25, 22, 36};
int found;
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter name to search: ");
String searchName = keyboard.next();
found = searchNames(name, searchName);
if(found == -1)
System.out.println("Error, not found: " + found);
else
System.out.println("Found At: " + found);
}
private static int searchNames(String[] name, String searchName) {
int i = 0, foundAt = -1;
boolean found = false;
while (!found && i < name.length)
{
if (name[i] == searchName)
{
found = true;
foundAt = i;
}
i++;
}
return foundAt;
}
【问题讨论】:
-
也就是说,您需要改为
name[i].equals(searchName)。
标签: java string search sequential