我有这个按钮和一个文本字段,我想在单击按钮时为变量添加值一切都在工作,我无法为字符串变量添加值
例如,如果我将值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);
}
});
答案 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。