Javaで '265.12+'または '265.12-'と '0.0+'または '0.0-'のいずれかの値を持つ英数字の文字列から文字列 '265.12'または '0.00'を抽出したい。英数字の文字列から数字を抽出する
+と - の代わりに2つの置換方法を使用する代わりに、1回で置き換えることはできますか?
Javaで '265.12+'または '265.12-'と '0.0+'または '0.0-'のいずれかの値を持つ英数字の文字列から文字列 '265.12'または '0.00'を抽出したい。英数字の文字列から数字を抽出する
+と - の代わりに2つの置換方法を使用する代わりに、1回で置き換えることはできますか?
私は.replaceAll("\\$ ?(.+) ?[+-]", "$1")
がすべきことだと思います。
PS:@MarkoTopolnikによって修正:)
PS:@userUnknownによって再修正 - 」
PS:自分で再編集= D
なぜ「[+ \\ - ]」ではないのですか?簡単な方法。 –
あなたはそうです、私は '+'をエスケープしなければならないと思いました。 – sp00m
グループの最後または最初の文字である場合、グループ内のマイナスをマスクする必要はありません。 '[+ - ]'や '[ - +]'は問題ありません。 –
あなたの特定のユースケースのための効率的な実装:
String extractNum(String in) {
final char last = in.charAt(in.length()-1);
return (last == '+' || last == '-') ? in.substring(0, in.length()-1) : in;
}
最後に署名が存在するかどうかはわかりませんが、上記の方法では他のデータが削除されることがあります – ank87
あなたは、置き換えメソッドの使用を動機づけさえしませんでした。サブ文字列メソッドは、最後の文字をチェックする条件内で使用できます。条件はswitchステートメントとして実行できます。 –
入力と出力が明確でない場合は、文字列がどのようなものか、抽出するものの完全な例を挙げることができますか? – amit
番号以外の番号を保持しますか? –