Java中的顺序字符串搜索
您好,堆栈溢出。。呃,, 我已经创建了这段代码,以便在数组中顺序搜索以找到一个值,在本例中是一个名称。但是我无法让它工作,它找不到我输入的名称,并且总是返回-1的值 当我将所有类型都改为INT并对age数组进行搜索时,它成功了,所以它可能与字符串类型有关?有人能帮我吗 公共静态void main(字符串[]args){Java中的顺序字符串搜索,java,string,search,sequential,Java,String,Search,Sequential,您好,堆栈溢出。。呃,, 我已经创建了这段代码,以便在数组中顺序搜索以找到一个值,在本例中是一个名称。但是我无法让它工作,它找不到我输入的名称,并且总是返回-1的值 当我将所有类型都改为INT并对age数组进行搜索时,它成功了,所以它可能与字符串类型有关?有人能帮我吗 公共静态void main(字符串[]args){ String[]name={“John”、“bert”、“Elle”、“beth”}; 字符串[]性别={“男”、“男”、“女”、“女”}; int[]年龄={18,25,22,
String[]name={“John”、“bert”、“Elle”、“beth”};
字符串[]性别={“男”、“男”、“女”、“女”};
int[]年龄={18,25,22,36};
int-found;
扫描仪键盘=新扫描仪(System.in);
System.out.println(“输入要搜索的名称:”);
String searchName=keyboard.next();
found=搜索名称(名称,搜索名称);
如果(找到==-1)
System.out.println(“错误,未找到:+found”);
其他的
System.out.println(“查找位置:“+Found”);
}
私有静态int searchName(字符串[]名称,字符串searchName){
int i=0,foundAt=-1;
布尔值=false;
而(!found&&i
这将很快关闭,但请使用.equals()
比较字符串。尝试替换这部分代码
while (!found && i < name.length)
{
if (name[i] == searchName)
{
found = true;
foundAt = i;
}
i++;
}
while(!found&&i
与
for(inti=0;也就是说,您需要执行name[i].equals(searchName)
。
while (!found && i < name.length)
{
if (name[i] == searchName)
{
found = true;
foundAt = i;
}
i++;
}
for(int i=0; i<name.length; i++)
{
if(name[i].equalsIgnoreCase(searchName))
{
found = true;
foundAt = i;
break;
}
}