0
私はUnixスタイルの行末(LF
)を複数行の文字列でWindowsスタイル(CR LF
)に変換しようとしています。str.replaceAll()は " r n"と一致しません
攻撃の私の計画は、以下のとおりです。
- はその後、しかし
CR LF
ですべてLF
のインスタンスを置き換え、このコードのスニペットが一致していないだけでLF
CR LF
のインスタンスを置き換えますthe "\r\n"
: String test = "test\r\ncase";
test.replaceAll("\r\n","\n");
PrintWriter testFile = new PrintWriter("test.txt");
testFile.print(test);
testFile.close();
私は既にdouble/triple/quadrupleのバックスラッシュを使ってみました。サイコロはありません。
test
文字列には、\r\n
という文字列が含まれていないことがわかります。これは、ファイルに出力するときにCR LF
と検出されるためです。
私はここで何が欠けていますか?
を、その後変更変更しないことを
String
ショーのインスタンスを変更することができます方法はありませんものでReplaceAll 'への最初の入力引数'は正規表現であるはずです。おそらくあなたは '' [\ r \ n] + ''など(おそらく '"(\ r \ n | \ r | \ n) "')を使うべきです。 –
@barakmanosそれではどうしたらいいですか?私はすでに二重バックスラッシュを試みたが役に立たない。 – Zaid
いいえ、バックスラッシュはここでのポイントではありません。二重バックスラッシュでは、基本的に 'replaceAll'関数にバックスラッシュを探すように指示しています。最初の引数を適切な正規表現として与える必要があります。 –