在jtextfield中查找数字总和

时间:2016-10-25 17:59:46

标签: java

我希望得到JTextField中所有数字的总和。我正在使用此代码,但它不起作用。问题是,我无法从{d1}获取JTextField作为数字。

String a = jTextField1.getText();
int d1= Integer.parseInt(a);
        int Arry[] = {d1};
int sum = 0;
for ( int i = 0; i<Arry.length; i++ )
  {
      sum=sum + Arry[i];
  }  
jTextField2.setText(sum+"");

2 个答案:

答案 0 :(得分:0)

如果jTextField1不仅包含数字,您可能需要提取所有数字:

    Pattern p = Pattern.compile("-?\\d+");
    Matcher m = p.matcher(jTextField1.getText());
    List<Integer> numbers = new ArrayList<>();
    while (m.find()) {
        numbers.add(Integer.parseInt(m.group()));
    }

然后将数字相加:

    int sum = 0;
    for (Integer number : numbers)
        sum += number;

答案 1 :(得分:0)

如果可以保证JTextField只包含可以解析为int的输入,例如没有字母或符号,那么唯一可能存在的问题就是你的数字之间有空格。我建议您转到Pattern API并查找可以检测空格的字符,然后转到String API并找到一种可以根据输入正则表达式拆分String的方法(正则表达式)。然后,您可以轻松地将分割String解析为int并获得总和。例如:

String a = jTextFieldName.getText();
String[] storage = a.someSplittingMethod("whitespace regex");
int sum = 0;
for(int c = 0; c < storage.length; c++)
    sum += Integer.parseInt(storage[c]);