我有一个这样的字符串:
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"
当前回答
最简单的方法是使用commons-lang3库的org.apachemons.lang3.StringUtils类,例如“commons-lang3-3.1.jar”。
对输入字符串使用静态方法“StringUtils.deleteWhitespace(Stringstr)”&它将在删除所有空格后返回一个字符串。我尝试了示例字符串“name=johnage=13year=2001”&它返回了您想要的字符串-“name=johnage=13yeal=2001”。希望这有帮助。
其他回答
public String removeSpaces(String word){
StringBuffer buffer = new StringBuffer();
if(word != null){
char[] arr = word.toCharArray();
for(int i=0; i < arr.length; i++){
if(!Character.isSpaceChar(arr[i])) {
buffer.append(arr[i]);
}
}
}
return buffer.toString();
}
这个问题最正确的答案是:
String mysz2 = mysz.replaceAll("\\s","");
我只是根据其他答案改编了这段代码。我之所以发布它,是因为除了完全符合问题的要求之外,它还表明结果是作为一个新字符串返回的,原始字符串并没有像某些答案那样被修改。
(有经验的Java开发人员可能会说“当然,您实际上不能修改字符串”,但这个问题的目标受众可能不知道这一点。)
可以使用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);
}
如果要删除字符串中的所有空格:
public String removeSpace(String str) {
String result = "";
for (int i = 0; i < str.length(); i++){
char c = str.charAt(i);
if(c!=' ') {
result += c;
}
}
return result;
}
st.replaceAll(“\\s+”,“”)删除所有空格和不可见字符(例如,tab,\n)。
st.replaceAll(“\\s+”,“”)和st.replaceAll(“\\s”,“)产生相同的结果。
第二个正则表达式比第一个正则表达式快20%,但随着连续空格数的增加,第一个正则正则表达式的性能比第二个更好。
如果不直接使用,则将值分配给变量:
st = st.replaceAll("\\s+","")