2017-01-27 6 views
3

文字列'\'(\\のような連続した文字列)をJavaの'\に置き換えたいだけでした。可能であれば、私はループfor allを繰り返し実行したくありません。正規表現で見つけて置き換えることが可能なことはありますか?私の場合、ユーザーがアプリケーションごとに与えたすべての\文字を検証して置き換える必要があるたびに、このような入力をたくさん得られるでしょう。文字列の置換方法

誰でもこの文脈で私を助けることができます。

入力されている:私は期待し\\\\プログラムファイル\\マイクロソフトゲーム\\\\\チェス\\\ Chess.exe

出力は次のようになります。の\ Program Files \ Microsoftゲーム\チェス\ Chess.exe

+0

は、( "\\"、 "\\\\\\")文字列の変数名はstr'は、以下の 'str.replaceを行う'であると言うことができます; ' – SteelToe

+1

あなた入力が奇妙に見えます。あなたの入力は実際に3つのバックスラッシュを持っていますか? –

+0

@SteelToeユーザーがバックスラッシュの合計数も10にしても、ユーザーが変更する必要がある\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\(すなわち、 –

答えて

5
static String replaceConsecutiveBackslash(String input) { 
    return input.replaceAll("\\\\{2,}", "\\\\"); 
} 
+0

@shmoselさん、ありがとうございました。 –

+0

@shmosel +量指定子を使わないのはなぜですか? – SteelToe

+0

@SteelToe '+'は1つ以上と一致します。我々は2つ以上を扱う必要があります。 – shmosel