将条形码输入捕获到一个字符串

时间:2016-01-27 23:31:45

标签: java arrays string barcode

我一直试图解决这个问题但是无法解决问题,我确定它的一些简单方法,即我做错了。但是我试图将输入捕获到一个简单的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

这是错误的,因为有额外的数字而且它不是没有空格的单个字符串。

1 个答案:

答案 0 :(得分:0)

看起来keys - 是List.So当您尝试打印它时,Java打印toString函数的结果(类似于此[4, 2, 2, 1, 1, 4, 7])。但是使用keys.get(n),您只能获得此列表中的最后一个元素。

试试这个: String barcode = keys.toString()

顺便说一句,由于评估了keyPressed函数,您有一些额外的数字,这会为您的keys列表添加新值。