logcat显示Integer.Parse()函数无法将字符串转换为int或float,而我已经在java中链接了xml文件。此外,我已将费率和数量列的输入类型设置为数字,因此用户无法输入除int或float之外的任何内容。 Plz的帮助。我一直试图让这段代码工作很长时间。但我找不到解决方案。
附件是代码:
public int initializeVars(){
int i;
for(i=0;i<9;i++){
//items[i] is the AutoCompleteTextView array
item[i]=items[i].getText().toString();
iquant[i]=Integer.valueOf(quant[i].getText().toString());
irate[i]=Float.valueOf(rates[i].getText().toString());
if(item[i]=="")
break;
}
return i;
}
}
答案 0 :(得分:0)
也许您可以尝试直接通过
解析 valueOfyourInt = Integer.parseInt(yourString);
youtFloat = Float.parseFloat(yourString);
我总是这样做而且有效。在 float 变量中,确保小数标记为“。”不是“,”。
您可能还想尝试捕获 NumberFormatException 以避免在解析时出现问题。
答案 1 :(得分:0)
为了避免这种情况,请使用这两个功能。
对于Int
private int getIntFromString(String str){
try{
return Integer.parseInt(str);
}catch(Exception e){
return 0;
}
}
浮动
private float getFloatFromString(String str){
try{
return Float.parseFloat(str);
}catch(Exception e){
return 0f;
}
}
在所需的地方调用这些方法
答案 2 :(得分:0)
尝试使用parseInt
方法而不是valueOf
,并将解析代码保留在try{}...catch{}
的{{1}}块中。
NumberFormateException
答案 3 :(得分:0)
<强> INT 强>
try {
myInt = Integer.parseInt(myString);
} catch(NumberFormatException e) {
}
<强> FLOAT 强>
try {
myFloat = Float.parseFloat(myString);
} catch(NumberFormatException e) {
}