在Java中从字符串中删除空格

时间:2019-04-20 11:02:34

标签: java string

已解决,感谢Pshemo。 问题在于字符串中包含不间断空格,可以使用以下空格删除该空格:

val = val.replaceAll("[\\s\\u00A0]", "");

好吧,我面临一个奇怪的问题,我只是想不通-也许错误很明显,而我只是个愚蠢的人。

我正在使用Java Web应用程序,用户将在其中通过文本框输入带编号的值。 我希望用户能够输入“ 100 000”,所以自然地,我必须将值收集为String对象,删除所有空格,并将其解析为int。

但是,字符串中的空格并未按预期删除。有人对为什么这段代码不起作用有任何见解吗?

我已经尝试了所有这些方法

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

当前代码如下:

if(value == 0) {
    String val = request.getParameter("value");
    if(val != null) {
        val = val.replaceAll("\\s", "").replaceAll(" ", "");
        try {
            value = Integer.parseInt(val);
        } catch (NumberFormatException e) {
            // Returning JSON with error;
        }
    }
}

更新: 如果我不从请求中获取字符串,而只是将其初始化为“ 100 000”,它就可以工作。可能与浏览器字符集有关吗?

我也不再提供代码-这直接发生在javax.servlet.http.HttpServlet#doPost

内部
String value = "100 000" // This works!

我希望输出中没有剩余的空格,但是实际的输出仍然包含空格,例如“ 100 000”

1 个答案:

答案 0 :(得分:0)

String sss = "100 000";
    sss = sss.replaceAll(" ", "");
    System.out.println (sss);
    int x = Integer.parseInt(sss);
    System.out.println(x);

这很好,您在其他地方遇到了问题。

如果您可以向我们展示更多代码,我们也许可以提供更多帮助。