我有一个这样的字符串:

mysz = "name=john age=13 year=2001";

我想删除字符串中的空格。我尝试了trim(),但这只删除了整个字符串前后的空格。我还尝试了replaceAll(“\\W”,“”),但随后=也被删除。

如何通过以下方式实现字符串:

mysz2 = "name=johnage=13year=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();
    }

其他回答

st.replaceAll(“\\s+”,“”)删除所有空格和不可见字符(例如,tab,\n)。


st.replaceAll(“\\s+”,“”)和st.replaceAll(“\\s”,“)产生相同的结果。

第二个正则表达式比第一个正则表达式快20%,但随着连续空格数的增加,第一个正则正则表达式的性能比第二个更好。


如果不直接使用,则将值分配给变量:

st = st.replaceAll("\\s+","")

您可以在不使用replaceAll()或Java中的任何预定义方法的情况下实现这一点。这种方式是优选的:-

public class RemoveSpacesFromString {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String newString;
        String str = "prashant is good" ;
        int i;
        char[] strArray = str.toCharArray();
        StringBuffer sb =  new StringBuffer();
        
        for(i = 0; i < strArray.length; i++)
        {
            if(strArray[i] != ' ' && strArray[i] != '\t')
            {
                sb.append(strArray[i]);
            }
        }
        System.out.println(sb);
    }
}
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();
    }

如果您也需要删除不可破坏的空格,可以这样升级代码:

st.replaceAll("[\\s|\\u00A0]+", "");

试试看:

String str="name=john age=13 year=2001";
String s[]=str.split(" ");
StringBuilder v=new StringBuilder();
for (String string : s) {
    v.append(string);
}
str=v.toString();