【发布时间】:2015-12-31 00:15:42
【问题描述】:
我的目标是从字符串中取出数字并将其转换为 int。 例如: 12.7(字符串)将变为 127(整数) 156-06 (string) 会变成 15606 (int)
这是我使用的代码:
private static int convertToDigits(String input){
StringBuilder sb = new StringBuilder(input.length());
for(int i = 0; i < input.length(); i++){
char c = input.charAt(i);
if(c > 47 && c < 58){
sb.append(c);
}
}
String result = sb.toString().trim();
Log.d("Result", result);
return Integer.parseInt(result);
}
当我记录结果时,我得到 127 作为我想要的字符串值,但是当我将其转换为 int 时,我得到一个 NumberFormatException:
java.lang.NumberFormatException: Invalid int: ""
at java.lang.Integer.invalidInt(Integer.java:138)
at java.lang.Integer.parseInt(Integer.java:358)
at java.lang.Integer.parseInt(Integer.java:334)
at com.dcasillasappdev.mytrackfieldteam.utility.Utility.convertToDigits(Utility.java:333)
我在这里遗漏了什么吗?提前致谢!
【问题讨论】:
-
你能举一个输入处理不正确的例子吗?
-
您确定要记录结果吗?根据异常,结果为空
-
java.lang.NumberFormatException: Invalid int: ""空字符串不是 0! -
好的,所以我输入了 12.7,这是日志:10-02 14:07:38.100 10383-10383/com.dcasillasappdev.myapp D/Result:127
标签: java android numberformatexception