簡體   English   中英

Java控制台輸入無法正常工作

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM