我有问题。我的String
的值为"$615.00"
,我想将其转换为double
或int
。我尝试了以下代码,但是有错误:
String one = "$615.00";
String two = "$15.00";
double newone = Double.parseDouble( one );
double newtwo = Double.parseDouble( two );
System.out.println(newone-newtwo);
错误是
Exception in thread "main" java.lang.NumberFormatException: For input string: "$615.00"
但是我为方法添加了NumberFormatException
,但仍然出现错误。
使用正则表达式删除“ $”之类的符号(换句话说,除去数字和点之外的所有符号)
String one = "$615.03";
String oneValue = one.replaceAll("[^0-9.]", "");
System.out.println(oneValue); // Output is 615.03, which is correctly parsed by parseDobule()
正如其他人在评论中说的那样,发生NumberFormatException的原因是您试图在不从数字中删除$的情况下解析Double。
在这种情况下,您可以使用substring()获取第一个字符之后的所有内容:
String one = "$615.00"; String two = "$15.00"; double newone = Double.parseDouble( one.substring(1) ); double newtwo = Double.parseDouble( two.substring(1) ); System.out.println(newone-newtwo);
600.00结果
删除货币符号