簡體   English   中英

打印其他任何內容時,掃描儀無法正確打印

[英]Scanner not printing correctly when printing anything else

public static void main(String[] args) throws FileNotFoundException{
    Scanner console = new Scanner(System.in);
    readFile(console.next()); 
}

public static void readFile(String name) throws FileNotFoundException{
    Scanner input = new Scanner(new File("names.txt")); // Open pipe
    while(input.hasNextLine()){
        String line = input.nextLine();
        scanLine(line, name);
    }
}

public static void scanLine(String line, String name) throws FileNotFoundException{
    Scanner oneLine = new Scanner(line);
    String txtName = oneLine.next();
    System.out.println("txtName: " + txtName);
    System.out.println("name: " + name);
}

帶有第18行(打印名稱); 回應:[不正確]

txtName: Delvin
name: A
txtName: Demarco
name: A
txtName: Demarcus
name: A
txtName: Demario
name: A
....

沒有第18行:響應:[正確]

txtName: A
txtName: Aaliyah
txtName: Aaron
txtName: Abagail
txtName: Abbey
txtName: Abbie
txtName: Abbigail
txtName: Abby
txtName: Abdiel
txtName: Abdul
txtName: Abdullah
txtName: Abe
txtName: Abel
....

代碼是這樣流動的:

  1. 用戶輸入字符串(名稱)
  2. readFile被稱為,我創建了一個新的Scanner對象並傳遞了一個new File
  3. 我希望應用程序繼續運行,直到到達.txt文件的最后一行,因此,當輸入具有nextLine時,它將繼續循環。
  4. 我將字符串從單行傳遞到scanLine,然后為該字符串創建一個新的Scanner對象。
  5. 每行看起來像:字符串[名稱],整數[數字],整數,整數,整數...
  6. 找到與用戶輸入的名稱相匹配的行后,將其發送到getStats()[至此為止。

問題:由於某種原因,僅打印name變量(第18行)oneLine.next()似乎開始在.txt文件中途開始打印。

但是,如果我不打印名稱,(或者根本不使用name變量)-看來效果很好,將第一個字母A打印到最后一個字母。

問題:由於某種原因,僅打印名稱變量(第18行)oneLine.next()似乎開始在.txt文件中途開始打印。

無論是在Windows控制台中運行還是在IDE(例如Eclipse)中運行,輸出窗口都限於其可以顯示的行數。

當每行輸入打印2行時,輸出窗口溢出,並且輸出的前半部分(?)被丟棄。 它仍然被打印,只是在您看到之前滾了下來。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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