从Java中删除字符串中的空格[复制]

问题描述 投票:1回答:1

这个问题在这里已有答案:

解决了,感谢Pshemo。问题是String包含一个无中断空间,可以使用以下命令删除:

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

好吧,我遇到了一个奇怪的问题,我只是想不出来 - 或者错误很明显,我只是愚蠢。

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

但是,String中的空格不会按预期删除。有没有人对此代码无效的原因有任何见解?

我已经尝试了所有这些;

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”

java string
1个回答
0
投票
String sss = "100 000";
    sss = sss.replaceAll(" ", "");
    System.out.println (sss);
    int x = Integer.parseInt(sss);
    System.out.println(x);

这工作得很好,你在其他地方遇到了问题。

如果您能向我们展示更多代码,我们可能会提供更多帮助。

© www.soinside.com 2019 - 2024. All rights reserved.