已解决,感谢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”
答案 0 :(得分:0)
String sss = "100 000";
sss = sss.replaceAll(" ", "");
System.out.println (sss);
int x = Integer.parseInt(sss);
System.out.println(x);
这很好,您在其他地方遇到了问题。
如果您可以向我们展示更多代码,我们也许可以提供更多帮助。