2016-01-27 36 views
0

我一直試圖解決它,但無法找到解決方案,我確定它的一些簡單的東西,即使我做錯了。但即時通訊嘗試捕捉輸入到一個簡單的字符串。我嘗試將鍵添加到數組中,並嘗試將它們轉換爲字符串,但無濟於事。捕獲條碼輸入到一個單一的字符串

這是我的基本代碼

     @Override 
        public void keyPressed(KeyEvent e) { 
         if(e.getKeyCode() >=48 && e.getKeyCode() <=57){ 
          String myString = Character.toString(e.getKeyChar()); 
          keys.add(myString); 
         } 
         System.out.println(keys); 
        } 
       }); 

做這件事時我的輸出是:

[4, 2] 
[4, 2, 2] 
[4, 2, 2, 1] 
[4, 2, 2, 1, 1] 
[4, 2, 2, 1, 1, 4] 
[4, 2, 2, 1, 1, 4, 7] 
[4, 2, 2, 1, 1, 4, 7, 1] 
[4, 2, 2, 1, 1, 4, 7, 1] 
[4, 2, 2, 1, 1, 4, 7, 1] 
[4, 2, 2, 1, 1, 4, 7, 1] 

最後幾個條目是正確的條形碼,但我不能使用它們分開:

String barcode = keys.get(keys.size() - 1); 

當我打印條碼我得到

4 
2 
2 
1 
1 
4 
7 
1 
1 
1 
1 

這是錯誤的,因爲有額外的數字,它不是沒有空格的單個字符串。

回答

0

看起來像keys - 是List.So當您嘗試打印它時,Java會打印toString函數的結果(類似於[4, 2, 2, 1, 1, 4, 7])。但與keys.get(n)你只得到這個列表中的最後一個元素。

試試這個: String barcode = keys.toString()

順便說一句,你有一些額外的數字,因爲評估keyPressed功能,它將新值添加到您的keys列表。

+0

謝謝,我會嘗試一次,我下班回家。問候 – Zorro

+0

不,沒有運氣。我得到[4] [4,2] [4,2,2] [4,2,2,1] [4,2,2,1,1] [4,2,2] ,1,1,4] [4,2,2,1,1,4,7] [4,2,2,1,1,4,7,1] [4,2,2,1 ,1,4,7,1]像早先的輸出。還有什麼想法? – Zorro

相關問題