2011-01-28 16 views
0

私は特殊な正規表現文字を含む文字列の置換に苦労しています。ファイルからセパレータのリストを得ました。エスケープされたこれらの文字をエスケープされていない文字に置き換える必要があります。Java文字列の F を置換してください

マッピングテーブルは次のとおりです。エスケープ文字はファイルの解析後にわかりますので、置換文字列をハードコードすることはできません。

escapeChar + F + escapeChar <=> sep1 
escapeChar + S + escapeChar <=> sep2 
escapeChar + T + escapeChar <=> sep3 
escapeChar + R + escapeChar <=> sep4 
escapeChar + E + escapeChar <=> escapeChar 

あなたが解析する際に、次の区切り

sep1 = | 
sep2 =^
sep3 = & 
sep4 = $ 
sep5 = \ 

にあなたが持っているファイルを解析した後、だから、ファイルや入力には、以下の\F\\S\\T\\R\\E\であることを言ってみましょう。

String sep1 = "|"; 
String escapeChar = "\\"; 
String x = "\\F\\\\S\\\\T\\\\R\\\\E\\"; 
x.replaceAll(Pattern.quote(escapeChar) + "F" 
     + Pattern.quote(escapeChar), sep1); 
System.out.println(x); 

答えて

2

文字列はJavaで不変である:それは、次のコードは、(私は第一セパレータと試みた)動作していない|^&$\

に翻訳されなければなりません。 String.replaceAllは、既存の文字列の内容を変更するのではなく、置換を実行した新しい文字列を返します。試してください:

x = x.replaceAll(...); 

私はあなたがしようとしていたことを理解していると仮定して、うまくいくようです。

+0

非常にシンプルな回答と1つのことに関する質問... –

関連する問題