我有一个有数字的字符串。
我有这样的代码,
String tempStr = "+123";
NumberFormat numformat = NumberFormat.getNumberInstance();
numformat.setParseIntegerOnly(true);
try {
int ageInDays = Integer.parseInt(tempStr);
System.out.println("the age in days "+ageInDays);
} catch (NumberFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
对于带有否定符号的数字,它工作得很好。但我不能用' +'符号。它抛出NumberFormatException。
那么如何解析数字' +'字符串中的符号?
答案 0 :(得分:4)
如果您使用的是Java 7或更高版本,我建议使用java.lang.Long;或java.lang.Integer; (如果您确定必须解析整数)。
适用于两种情况。
稍后编辑: 我没有看到你使用的是Integer.parseInt();
因此我假设您使用Java 6或更低版本。
在这种情况下,请尝试在Integer.parseInt(tempStr);
行之前调用以下方法,以便在 + 存在时将其删除:
private static String removePlusSignIfExists(String numberAsString) {
if(numberAsString == null || numberAsString.length() == 0){
return numberAsString;
}
if(numberAsString.charAt(0) == '+'){
return numberAsString.substring(1, numberAsString.length());
} else {
return numberAsString;
}
}
答案 1 :(得分:2)
此功能基本上将“+”替换为“”,空白字符串,因此“+ 12 + 3”将返回 123 即可。
public int parseInt(String text) {
return Integer.parseInt(text.replaceAll("+", ""));
}
如何使用它的一个例子是
System.out.println(parseInt("+123")); //Returns 123
我希望这有帮助!