2017-10-15 110 views
-2

我試圖從文件中讀取正整數和負整數的列表,並使用掃描程序將它們存儲在數組中。問題在於它沒有讀取負值。這裏的輸入:Java,從文件中讀取簽名和未簽名

7 4 5 8 2 4 7 5 0 8 2 3 9 23 48 -12 49 

下面的代碼我現在有:

try { 
     Scanner input= new Scanner(new File(args[0])); 
     key = input.nextInt(); 
     while(input.hasNextInt()) 
     { 
      nums[count] = input.nextInt(); 
      count++; 
     } 
     input.close(); 

    } catch (FileNotFoundException e) { 
     System.out.println("No file \""+args[0]+"\" found!"); 
    } 

的問題是它退出第一負值。

+0

我已經低估了這個問題,因爲沒有對此代碼執行任何調試的證據。請[編輯]您的問題,向我們展示您的調試未發現的內容,以及關於特定代碼行的具體問題。請參閱:[如何創建最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)和[如何調試小程序](https://ericlippert.com/2014/03/05 /如何調試的小程序/)。 –

+0

歡迎來到Stack Overflow!請閱讀[如何提出一個好問題](https://stackoverflow.com/help/how-to-ask)。你的問題應該是具體的,你的相關代碼應該[最小,完整和可驗證](https://stackoverflow.com/help/mcve)。 –

回答

2

似乎還有一個額外的-隱藏在文件中的轉義字符。如果粘貼您已經給成使得它們的編輯器中的線,則得到:

7 4 5 8 2 4 7 5 0 8 2 3 9 23 48 49 - 12

其中--12顯然不是一個合適的整數來讀取。

+0

哇!很好的發現! – Seelenvirtuose

+0

抱歉,這在實際輸入文件中不存在。 – user6950289

+0

@ user6950289它是,它只是不可見。嘗試刪除48和12之間的所有內容,並用簡單的'-'替換它。 –