我从自定义日志中获得此异常:
java.lang.NumberFormatException: Invalid int: "12px"
at java.lang.Integer.invalidInt(Integer.java:137)
at java.lang.Integer.parse(Integer.java:374)
at java.lang.Integer.parseInt(Integer.java:365)
at java.lang.Integer.parseInt(Integer.java:331)
然后我检查相关代码,但我不明白为什么会发生这种异常:
String fontSize = styles.getStyle("font-size");
if (fontSize.endsWith("px")) {
fontSize = fontSize.substring(0, fontSize.length() -2);
}
setWeight(Integer.parseInt(fontSize));
谢谢!
这是我的修复:
try {
setWeight(Integer.parseInt(fontSize));
} catch (NumberFormatException e) {
setWeight(12);
}
答案 0 :(得分:1)
这个怎么样:
fontSize = fontSize.replaceAll("[^\\d]", "");
它会将所有非数字字符替换为''(无),剩下的所有字符将为12
。
你甚至不必测试你的字符串是否以'px'结尾,因为不会触及没有任何非数字字符的字符串。
总之它会给你这个:
String fontSize = styles.getStyle("font-size");
fontSize = fontSize.replaceAll("[^\\d]", "");
setWeight(Integer.parseInt(fontSize));