如果数组中有给定的字符串,我想创建一个子程序来搜索。我希望子程序具有名称和数组的要求。我怎样才能做到这一点?
我的子程序是:
static int findElement(String a, String array){
for (int i = 0; i < array.size(); i++){
if (array.get(i).getName().equalsIgnoreCase(a)) {
System.out.println(i);
return i;
}
else return 0;
}
}
我当然有错误,因为它不接受我插入的数组。
答案 0 :(得分:2)
这只是一个错字:
static int findElement(String a, String array)
我认为你的意思是:
static int findElement(String a, String[] array)
此外,您的计划还存在多个问题:
for (int i = 0; i < array.size(); i++){
if (array.get(i).getName().equalsIgnoreCase(a)) {
System.out.println(i);
return i;
}
else return 0;
}
您不希望在一个元素不匹配时立即返回,您希望在所有元素不匹配时返回。 0是索引,通常返回-1。要从数组中获取值,请使用括号。字符串没有方法getName()
。您可以使用array.length
来获取数组的长度。
for (int i = 0; i < array.length; i++) {
if (array[i].equalsIgnoreCase(a)) {
return i;
}
}
return -1;
从您的程序中猜测,我假设您错误地输入了参数,并且可能需要类似这样的内容,使用Collection和对象类型:
static int findElement(String a, List<Person> array) {
for (int i = 0; i < array.size(); i++){
if (array.get(i).getName().equalsIgnoreCase(a)) {
return i;
}
}
return -1;
}