我一直试图解决这个问题但是无法解决问题,我确定它的一些简单方法,即我做错了。但是我试图将输入捕获到一个简单的String中。我尝试将密钥添加到数组中并尝试将它们转换为字符串,但无济于事。
这是我的基本代码
@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 :(得分:0)
看起来keys
- 是List.So当您尝试打印它时,Java打印toString
函数的结果(类似于此[4, 2, 2, 1, 1, 4, 7]
)。但是使用keys.get(n)
,您只能获得此列表中的最后一个元素。
试试这个:
String barcode = keys.toString()
。
顺便说一句,由于评估了keyPressed
函数,您有一些额外的数字,这会为您的keys
列表添加新值。