[英]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.