public class Book {
private String Author;
private Book[]Details;
public void setAuthor()
{
}
public String getAuthor()
{
return Author;
}
//Author already set for Array
public int getviewInfo()
{
System.out.println("Enter author");
Scanner kb= new Scanner(System.in);
int index=0;
String author= kb.next();
for(int i=0 ;i<Details.length; i++)
{
if((Details[i].getAuthor()).equals(author)); //compare both author
{
index=i;
//loop enters here even when author input not equal to getAuthor, why??
System.out.println("SAME author"); //& will continue to run this i times
}
}
System.out.println("sameindex "+index); //therefore index is wrong
return index;
}
我有一个方法getviewInfo()
,它假定获取数组对象的索引位置以便稍后打印。它提示用户输入一个String&#39; author&#39;,接受并比较之前为Array设置的另一个String的相等性。
问题是,在for循环中,即使String作者输入与Details[i].getAuthor()
中的其他字符串不同,也会输入用于比较这两个字符串的if语句,我得到的索引是错误的。
为什么if语句无法正常工作?谁能告诉我我做错了什么?非常感谢
答案 0 :(得分:5)
看起来你的问题在这里:
if((Details[i].getAuthor()).equals(author));
由于if语句后面有一个不需要的分号,所以会发生什么:
尝试删除&#39;;&#39;然后再试一次。