質問
私はこのような文字列を持っています:
BEGIN\n\n\n\nTHIS IS A STRING\n\nEND
そして、私はすべての新しいライン文字を削除して、次のような結果を持ちたいと思います。
BEGIN THIS IS A STRING END
これを達成するにはどうすればよいですか?標準のAPI関数は、私の経験のエスケープシーケンスのために機能しません。
解決
シンプルな replace('\n', ' ')
文字列が次のようになります。
BEGIN THIS IS A STRING END
**** **
どこ *
'sはスペースです。単一のスペースが必要な場合は、試してみてください replaceAll("[\r\n]{2,}", " ")
そして、それらがラインブレークではなく、文字通りです "\n"
wither try:
replace("\\n", " ")
また:
replaceAll("(\\\\n){2,}", " ")
他のヒント
試す str.replaceAll("\\\\n", "");
- これは二重脱出と呼ばれます:)
これは私にとってはうまくいきます:
String s = "BEGIN\n\n\n\nTHIS IS A STRING\n\nEND";
String t = s.replaceAll("[\n]+", " ");
System.out.println(t);
キーはreg-exです。
String str = "BEGIN\n\n\n\nTHIS IS A STRING\n\nEND;";
str = str.replaceAll("\\\n", " ");
// Remove extra white spaces
while (str.indexOf(" ") > 0) {
str = str.replaceAll(" ", " ");
}
確かに、標準のAPIは機能しますが、脱出する必要がある場合があります( " n")。
私は通常Javaでコーディングしませんが、簡単な検索でString.trimがあなたのために働くべきだと信じるようになります。それは、 n tなどとともに、リードとトレイルの白い空間を除去すると言っています...
このスニペットが役立つことを願っています、
Scanner sc = new Scanner(new StringReader("BEGIN\n\n\n\nTHIS IS A STRING\n\nEND "));
String out = "";
while (sc.hasNext()) {
out += sc.next() + " ";
}
System.out.println(out);
所属していません StackOverflow