0

我的输入值为“+000011111.11”,我基本上想删除 + 和前导零。目前解决这个问题的方法是:

inputString="+0000111111.11"
StringBuffer bufOutputString = new StringBuffer(inputString);
StringBuffer bufNewOutputString = new StringBuffer();

for (int i = 0; i < inputString.length(); i++) {
    if (Character.isDigit(bufOutputString.charAt(i)) || bufOutputString.charAt(i)=='.') {
        bufNewOutputString.append(bufOutputString.charAt(i));
    }
}
inputString=bufNewOutputString.toString();
String s = inputString.replaceFirst ("^0*", "");
System.out.println("The Super converted value is"+s);

所以基本上是使用for循环来消除“+”,然后使用正则表达式来确保前导零都消失了。

有没有更好的方法来处理这个字符串的解析?感谢您的输入。

4

2 回答 2

7

当然

String s = inputString.replaceFirst ("^\\+?0*", "");

用空字符串替换零或一个加号,以及零个或多个零。所以你可能可以用这一行替换你的所有代码。还是我错过了什么?

于 2012-08-28T03:55:08.523 回答
3

您可以使用:

String s = Double.valueOf("+000011111.11").toString();
于 2012-08-28T04:01:29.313 回答