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 ループを使用して「+」を削除し、次に RegEx を使用して先頭のゼロがすべてなくなっていることを確認しています。

この文字列の解析を処理するより良い方法はありますか?? ご意見ありがとうございます。

4

2 に答える 2

7

もちろん

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

0 個または 1 個のプラス記号、および 0 個以上のゼロを空の文字列に置き換えます。したがって、おそらくすべてのコードをこの行で置き換えることができます。または、何か不足していますか?

于 2012-08-28T03:55:08.523 に答える
3

次を使用できます。

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