【发布时间】:2017-01-12 14:05:22
【问题描述】:
所以我写了一个程序,如果你输入书名,它会打印关于一本书的信息,如果你直接输入标题作为这样的字符串,它工作得很好:
bs.getBook("book");
但我希望它从这样的控制台输入中读取标题:
String inputResult = System.console().readLine();
bs.getBook(inputResult);
但由于某种原因它不起作用。如果我只是尝试打印输入,它会打印我输入的字符串,因此它实际上也应该与 getBook 一起使用,但它没有。我错过了什么吗?
这就是getBook方法:
public void getBook(String title) {
for (int i = 0; i < books.length; i++) {
if (books[i].title == title) {
System.out.println(books[i]);
} else {
System.out.println("0");
}
}
}
所以这里有一个例子: 如果我这样输入书名:
bs.getBook("book");
它在控制台中打印出它应该这样做的信息:
Book(book, 8494030, 22.1)
但如果我尝试使用以下命令在命令行中输入标题:
String inputResult = System.console().readLine();
bs.getBook(inputResult);
它不起作用。如果我尝试打印我输入的内容:
System.out.println(inputResult);
它会打印我输入的内容,为什么它在 getBook 方法中不能正常工作?
【问题讨论】:
-
可能是的,你错过了一些东西。但是我们不能确定没有minimal reproducible example。
-
你使用的是eclipse还是其他IDE?
-
@KiraKumar 我不确定,我猜不是。
-
您将 String 与
==进行比较,而不是equals