JAVA - 我如何不断增加价值

时间:2015-03-26 13:11:47

标签: java

我有这个按钮和一个文本字段,我想在单击按钮时为变量添加值一切都在工作,我无法为字符串变量添加值

例如,如果我将值20放在tempvalue字符串上它应该有20而我放30它应该有50但我得到的是null2050。
我试过+ =运算符,但没有工作。

难道没有任何运营商在其上面增加价值或者我是否必须编写新方法?

private String tempvalue;

btnEnter.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        String getTxt = textField.getText();
        tempvalue += getTxt;

        System.out.println(tempvalue);

    }
});

3 个答案:

答案 0 :(得分:4)

你从Textfields获得字符串。

String input = getTxt;

您必须将String解析为整数或任何其他数字类型。

int value = Integer.parseInt(input);

然后你可以做计算。

您还应始终检查用户输入是否确实是一个数字。 使用try / catch来避免错误输入:

int value = 0;
int firstValue = 5; //example variable
try{
    value = Integer.parseInt(input);
}catch(Exception e1){
    System.out.println("Your input could not be parsed to a number");
}
int result = firstValue + value; //always be sure all your values are numbers and not strings
System.out.println("Result: "+result);

总计:

private int tempvalue = 0;

btnEnter.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e) {
        String getTxt = textField.getText();
        int value = 0;

        try{
            value = Integer.parseInt(getTxt);
        }catch(Exception e1){
            System.out.println("Your input could not be parsed to a number");
        }

        tempvalue += value;

        System.out.println("Result: "+tempvalue);

        }
    });
}

答案 1 :(得分:1)

你只是简单地连接你的字符串。 实际上,您从null开始,然后添加20但是作为字符串然后30,但始终作为字符串。 将每个步骤转换为数字,然后完成结果。

答案 2 :(得分:1)

正如@Jesper评论的那样,代码是连接字符串而不是应用诸如sum,subtraction和son之类的计算...

因此,请尝试更改代码,以便从java.lang.String转换为java.langInteger


Integer tempValue += new Integer( getText );
System.out.println( tempvalue ); 

或使用Integer wrap class

中的静态方法
Integer tempValue += Integer.parseInt( getText );
System.out.println( tempvalue );

或者然后使用int Java类型(自动使用自动框)

int tempValue += Integer.parseInt( getText ).intValue();
System.out.println( tempvalue );

小心字符串到整数转换。这可能会在运行时引发NumberFormatException。