RegEX模式 - 两步过程

时间:2012-08-28 03:48:44

标签: java regex

我的输入值为“+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循环来消除“+”,然后使用RegEx来确保前导零都消失了。

有没有更好的方法来处理这个String的解析?感谢您的投入。

2 个答案:

答案 0 :(得分:7)

不确定

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

用空字符串替换零或一个加号,以及零或多个零。因此,您可以通过此行替换所有代码。或者我错过了什么?

答案 1 :(得分:3)

您可以使用:

String s = Double.valueOf("+000011111.11").toString();