java中如何将文本框输入的值(ex:TextField)赋予变量(整型),如果输入的不是数值,怎么办
展开全部
String str=textField.getText();//获得输入的内容
int result=-1;//定义result存放转换后的值
try{
result=Integer.parseInt(str);//调用类Integer的parseiInt()方法将字符串str转换为相应的整形数据
}catch(Exception ex){//捕获异常,并在textField中显示指定的信息
textField.setText("输入中含有非数字字符...");
}
int result=-1;//定义result存放转换后的值
try{
result=Integer.parseInt(str);//调用类Integer的parseiInt()方法将字符串str转换为相应的整形数据
}catch(Exception ex){//捕获异常,并在textField中显示指定的信息
textField.setText("输入中含有非数字字符...");
}
更多追问追答
追问
假设textField.setText("1+f1),使得result=1+f1
即在文本框中输入公式1+f1,使类中定义的f1按照这个公式计算?是把表达式赋给 result而不是值
追答
import java.util.Map;
import java.util.HashMap;
//...
int f1=100;
Map buff=new HashMap();
buff.put("f1",""+f1);
String str=textField.getText();
char ch='X';
int first=0;
int second=0;
int result=-1;
for(int i=0;i<str.length();i++){
ch=str.charAt(i);
if(ch=='+'){//如果是其他运算符,改成相应的,并且只适用于 仅包含两个操作数的情况
first=Integer.parseInt(str.substring(0,i));
second=Integer.parseInt(buff.get(str.substring((i+1),str.length())).toString());
result=first+second;
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询