2012-05-04 86 views
-4

Javaで '265.12+'または '265.12-'と '0.0+'または '0.0-'のいずれかの値を持つ英数字の文字列から文字列 '265.12'または '0.00'を抽出したい。英数字の文字列から数字を抽出する

+と - の代わりに2つの置換方法を使用する代わりに、1回で置き換えることはできますか?

+3

あなたは、置き換えメソッドの使用を動機づけさえしませんでした。サブ文字列メソッドは、最後の文字をチェックする条件内で使用できます。条件はswitchステートメントとして実行できます。 –

+2

入力と出力が明確でない場合は、文字列がどのようなものか、抽出するものの完全な例を挙げることができますか? – amit

+0

番号以外の番号を保持しますか? –

答えて

0

私は.replaceAll("\\$ ?(.+) ?[+-]", "$1")がすべきことだと思います。

PS:@MarkoTopolnikによって修正:)

PS:@userUnknownによって再修正 - 」

PS:自分で再編集= D

+0

なぜ「[+ \\ - ]」ではないのですか?簡単な方法。 –

+0

あなたはそうです、私は '+'をエスケープしなければならないと思いました。 – sp00m

+2

グループの最後または最初の文字である場合、グループ内のマイナスをマスクする必要はありません。 '[+ - ]'や '[ - +]'は問題ありません。 –

0

あなたの特定のユースケースのための効率的な実装:

String extractNum(String in) { 
    final char last = in.charAt(in.length()-1); 
    return (last == '+' || last == '-') ? in.substring(0, in.length()-1) : in; 
} 
+0

最後に署名が存在するかどうかはわかりませんが、上記の方法では他のデータが削除されることがあります – ank87

関連する問題