从java中的字符串解析负前缀整数

时间:2011-09-09 10:11:44

标签: java int

嗨我有一个看起来像这个10 -1 30 -2的字符串,我想读取空格之间的数字。我可以使用FOR语句和代码

来完成此操作
Character.toString(myString.charAt(i));

Integer.parseInt(myString);

但是当我尝试读取-1的负数时我遇到了问题,我收到了错误消息:

09-09 13:06:49.630: ERROR/AndroidRuntime(3365): Caused by: java.lang.NumberFormatException: unable to parse '-' as integer

任何想法如何解决这个问题?

3 个答案:

答案 0 :(得分:8)

这是你想要的吗?

for (String number : "10 -1 30 -2".split("\\s"))
{
    int x = Integer.parseInt(number);
    System.out.println(x);
}

这将打印:

10
-1
30
-2

答案 1 :(得分:7)

您正在尝试解析单个字符'-')(在将其转换为字符串后,无可否认)而不是字符串“-1”。如果您使用charAt,您将一次解析一个数字,因此“10”将显示为1,然后是0,而不是10。

如果你只是在空格上分割你的字符串,你应该能够毫无问题地解析字符串。

答案 2 :(得分:0)

也许您想使用StringTokenizer将字符串拆分为某些字符。

StringTokenizer st = new StringTokenizer("10 -1 30 -2");
while (st.hasMoreTokens()) {
  String intStr = st.nextToken();
  int x = Integer.parseInt(intStr);
  System.out.println(x);
}