0

logcat 显示 Integer.Parse() 函数无法将字符串转换为 int 或 float,而我已在 java 中链接了 xml 文件。此外,我已将费率和数量列的输入类型设置为数字,因此用户不可能输入除 int 或 float 之外的任何内容。请帮忙。我一直试图让这段代码工作很长时间。但我找不到解决方案。

附上代码:

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;
}
}
4

4 回答 4

0

To avoid these kind of circumstances use these two functions.

For Int

private int getIntFromString(String str){
    try{
        return Integer.parseInt(str);
    }catch(Exception e){
        return 0;
    }
}

For float

private float getFloatFromString(String str){
        try{
            return Float.parseFloat(str);
        }catch(Exception e){
            return 0f;
        }
}

Call these methods at required places

于 2013-07-25T06:24:11.207 回答
0

尝试使用该parseInt方法而不是valueOf将该解析代码保留try{}...catch{}NumberFormateException.

try{
    iquant[i]=Integer.parseInt(quant[i].getText().toString());
    irate[i]=Float.parseFloat(rates[i].getText().toString());
    }
    catch(NumberFormateException e){}
于 2013-07-25T06:26:28.523 回答
0

INT

try {
    myInt = Integer.parseInt(myString);
} catch(NumberFormatException e) {
}

漂浮

try {
    myFloat = Float.parseFloat(myString);
} catch(NumberFormatException e) {
}
于 2013-07-25T06:26:53.790 回答
0

也许代替valueOf你可以尝试直接通过解析它

yourInt = Integer.parseInt(yourString);
youtFloat = Float.parseFloat(yourString);

我总是这样做,而且效果很好。在浮点变量中,确保小数点用“。”标记。不是 ”,”。

您可能还想尝试捕获NumberFormatException以避免解析时出现问题。

于 2013-07-25T06:15:05.017 回答