嗨我有一个字符串“72 \ n”当我尝试使用Integer.parseInt(“72 \ n”)时,它给出了一个日志错误,无法将'72'解析为整数。我该怎么做才能过滤掉\ n?
由于
答案 0 :(得分:3)
\n
是换行符,其中包含一种空格。 Java中的字符串有一个名为trim()
的方法,该方法返回字符串的副本,其中删除了前导和尾随空格。
String a = "72\n";
String b = a.trim(); // "72"
答案 1 :(得分:2)
处理前导和尾随空格的简单方法是使用String.trim()
。
您可以使用replaceAll
或类似内容删除嵌入式空白和其他“噪音”,但您可能会有改变用户意图的风险。例如,嵌入空格或逗号可能意味着用户认为他可以/应该输入多个数字。在我看来,最好告诉用户有一个错误,而不是尝试修复错误并弄错(从用户的角度来看)。
所以,在这种情况下,我会说使用replaceAll
不是一个好主意,因为它可以“修复”数字中的空格以及引导或尾随它。
答案 2 :(得分:1)
replaceAll
应该运行良好。例如,\\D
会找到所有非数字字符,因此myString.replaceAll("\\D", "")
可以很好地运作:
String test2 = "72\n";
System.out.printf("\"%s\"%n", test2);
test2 = test2.replaceAll("\\D", "");
System.out.printf("\"%s\"%n", test2);
如果我们允许非int浮点数,这会变得更加棘手,这些数字允许依赖于语言环境的非数字字符,例如美国小数点的.
和其他一些小数点,
位置。