如果string中包含其他字符,则将string转换为int

时间:2011-10-09 01:02:14

标签: java string int

嗨我有一个字符串“72 \ n”当我尝试使用Integer.parseInt(“72 \ n”)时,它给出了一个日志错误,无法将'72'解析为整数。我该怎么做才能过滤掉\ n?

由于

3 个答案:

答案 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浮点数,这会变得更加棘手,这些数字允许依赖于语言环境的非数字字符,例如美国小数点的.和其他一些小数点,位置。