String s ="SSR/DANGEROUS GOODS AS PER ATTACHED SHIPPERS
/DECLARATION 1 PACKAGE
NFY
/ACME CONSOLIDATORS"
如何去除“PACKAGE”和“NFY”之间的空格?
String s ="SSR/DANGEROUS GOODS AS PER ATTACHED SHIPPERS
/DECLARATION 1 PACKAGE
NFY
/ACME CONSOLIDATORS"
如何去除“PACKAGE”和“NFY”之间的空格?
Java的String.replaceAll
实际上采用了正则表达式。你可以使用以下代码来删除所有换行符:
string.replaceAll("\\n", "");
s = s.replaceAll("\\n", "");
s = s.replaceAll("\\r", "");
但这将会移除所有换行符。
注意双反斜杠:这样传递给正则表达式解析器的字符串才是\n
。
你也可以这样做,这更加智能:
s = s.replaceAll("\\s{2,}", " ");
这将删除所有长度为2或更长的空白序列,并用单个空格替换它们。由于换行符也是空格字符,因此对您来说这应该足够了。
s.replaceAll("(?:\\n|\\r)", "");
可以在单个语句中实现同样的效果。而且可以根据需要调整表达式以使其更具选择性。 - Romain^
和$
的含义,使它们能够在行边界以及整个字符串的开头和结尾进行匹配。由于你的正则表达式中没有锚点,因此MULTILINE标志无效。 - Alan MoorePattern.MULTILINE
注释掉了。但是(我最初尝试的)s = s.replace("\\s{2,}", " ");
不起作用。它没有删除换行符。有什么想法吗? - craigmjreplace
,而不是 replaceAll
。太蠢了! - craigmjs = s.replaceAll("[\\n\\r]", "");
尝试这段代码:
s = s.replaceAll( "PACKAGE\\s*NFY", "PACKAGE NFY" );
你尝试过替换函数吗?类似这样的代码:
youString.Replace("\r", "")
string = string.replace(/\s{2,}/g, ' ');
Java
给出一个解决方案吗? - Romain