我有一个这样的字符串:
mysz = "name=john age=13 year=2001";
我想删除字符串中的空格。我尝试了trim(),但这只删除了整个字符串前后的空格。我还尝试了replaceAll(“\\W”,“”),但随后=也被删除。
如何通过以下方式实现字符串:
mysz2 = "name=johnage=13year=2001"
我有一个这样的字符串:
mysz = "name=john age=13 year=2001";
我想删除字符串中的空格。我尝试了trim(),但这只删除了整个字符串前后的空格。我还尝试了replaceAll(“\\W”,“”),但随后=也被删除。
如何通过以下方式实现字符串:
mysz2 = "name=johnage=13year=2001"
当前回答
使用apache字符串util类更好地避免NullPointerException
org.apache.commons.lang3.StringUtils.replace("abc def ", " ", "")
输出
abcdef
其他回答
您需要的代码是
str.replaceAll("\\s","");
这将删除所有空白。
replaceAll("\\s","")
\w=任何单词字符
\W=任何非单词字符(包括标点符号等)
\s=任何空格字符(包括空格、制表符等)
\S=非空格字符的任何内容(包括字母和数字以及标点符号等)
(编辑:如前所述,如果您希望到达正则表达式引擎,则需要转义反斜杠,从而导致\\s。)
可以使用isWhitespace函数从字符类中删除空白。
public static void main(String[] args) {
String withSpace = "Remove white space from line";
StringBuilder removeSpace = new StringBuilder();
for (int i = 0; i<withSpace.length();i++){
if(!Character.isWhitespace(withSpace.charAt(i))){
removeSpace=removeSpace.append(withSpace.charAt(i));
}
}
System.out.println(removeSpace);
}
在java中,我们可以执行以下操作:
String pattern="[\\s]";
String replace="";
part="name=john age=13 year=2001";
Pattern p=Pattern.compile(pattern);
Matcher m=p.matcher(part);
part=m.replaceAll(replace);
System.out.println(part);
为此,您需要将以下程序包导入到程序中:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
我希望这对你有帮助。
提供了相当多的答案。我想给出一个比正则表达式更易读、更好的解决方案。
import java.io.IOException;
import org.apache.commons.lang.StringUtils;
public class RemoveAllWhitespaceTest {
public static void main(String[] args) throws IOException {
String str1 = "\n\tThis is my string \n \r\n !";
System.out.println("[" + str1 + "]");
System.out.println("Whitespace Removed:");
System.out.println("[" + StringUtils.deleteWhitespace(str1) + "]");
System.out.println();
}
}