0
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()
它假设获取数组对象的索引位置以供以后打印。它提示用户输入一个字符串“作者”,并将其与之前为该数组设置的另一个字符串进行比较。为什么我无法获得具有指定条件的数组索引?
问题是,在for循环中,比较这两个字符串的if语句即使在字符串作者输入不同于另一个来自Details[i].getAuthor()
的字符串时也会进入,我得到的索引是错误的。
为什么if语句不能正常工作?有人能告诉我我做错了什么吗?感谢这么多
也索引初始值= 0,所以即使没有匹配,方法将返回0。你应该返回-1如果匹配没有找到 –
谢谢,@ MaximTulupov绝对正确。 – Omrisk
非常感谢,犯了一个愚蠢的语法错误,删除分号解决了问题。 – Jackaliar