我有一个这样的字符串:

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

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

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

mysz2 = "name=johnage=13year=2001"

当前回答

您可以在不使用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);
    }
}

其他回答

mysz = mysz.replace(" ","");

第一个有空间,第二个没有空间。

然后就完成了。

你应该使用

s.replaceAll("\\s+", "");

而不是:

s.replaceAll("\\s", "");

这样,它将在每个字符串之间使用多个空格。上述正则表达式中的+符号表示“一个或多个\ s”

--\s=任何空格字符(包括空格、制表符等)。为什么这里需要s+?

你可以这么简单地通过

String newMysz = mysz.replace(" ","");

最简单的方法是使用commons-lang3库的org.apachemons.lang3.StringUtils类,例如“commons-lang3-3.1.jar”。

对输入字符串使用静态方法“StringUtils.deleteWhitespace(Stringstr)”&它将在删除所有空格后返回一个字符串。我尝试了示例字符串“name=johnage=13year=2001”&它返回了您想要的字符串-“name=johnage=13yeal=2001”。希望这有帮助。

import java.util.*;
public class RemoveSpace {
    public static void main(String[] args) {
        String mysz = "name=john age=13 year=2001";
        Scanner scan = new Scanner(mysz);

        String result = "";
        while(scan.hasNext()) {
            result += scan.next();
        }
        System.out.println(result);
    }
}