[英]Java console input doesn't work as intended
因此,我编写了一个程序,如果您输入标题,它会打印有关一本书的信息,如果您直接将标题输入为这样的字符串,则该程序可以很好地工作:
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方法中正常工作?
我不认为您的扫描仪/阅读器是这里的问题。 在您的getBook方法中,尝试将标题与等值进行比较
if (books[i].title.equals(title)) {
我假设您的.title
方法返回一个带有书名的String,如果您将其称为getTitle
会更容易理解
您可以尝试使用缓冲读取器
InputStream is = System.in;
BufferedReader in = new BufferedReader(new InputStreamReader(is));
System.out.println("Enter Book Title: ");
String input = "";
try {
input = in.readLine();
System.out.println("Your Input: " + input);
is.close();
in.close();
} catch (IOException e) {
System.out.println("Error reading input");
}
尝试从命令行使用扫描仪获取值
System.out.println("Enter your book name: ");
Scanner scanner = new Scanner(System.in);
String bookName= scanner.nextLine();
System.out.println("Your book name is " + bookName);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.