web-dev-qa-db-ja.com

文字列からキャリッジリターンを削除する方法

String s ="SSR/DANGEROUS GOODS AS PER ATTACHED SHIPPERS
/DECLARATION 1 PACKAGE

NFY
/ACME CONSOLIDATORS"

「PACKAGE」と「NFY」の間のスペースを取り除く方法は?

7
user1321390

JavaのString.replaceAllは、実際には正規表現を取ります。次の方法ですべての改行を削除できます。

s = s.replaceAll("\\n", "");
s = s.replaceAll("\\r", "");

しかし、これはall改行を削除します。

二重の\に注意してください。したがって、正規表現パーサーに渡される文字列は\nです。

これを行うこともできます。これはよりスマートです。

s = s.replaceAll("\\s{2,}", " ");

これにより、2つ以上の空白のすべてのシーケンスが削除され、単一のスペースに置き換えられます。改行も空白であるため、それでうまくいくはずです。

28
craigmj

このコードを試してください:

s = s.replaceAll( "PACKAGE\\s*NFY", "PACKAGE NFY" );
3
Aaron Digulla