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

use*_*813 1 java int

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

Character.toString(myString.charAt(i));
Run Code Online (Sandbox Code Playgroud)

Integer.parseInt(myString);
Run Code Online (Sandbox Code Playgroud)

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

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

任何想法如何解决这个?

Tom*_*icz 8

这是你想要的吗?

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

这将打印:

10
-1
30
-2
Run Code Online (Sandbox Code Playgroud)


Jon*_*eet 7

您正在尝试解析单个字符('-')(在将其转换为字符串后,无可否认)而不是字符串"-1".如果你使用charAt你将一次解析一个数字,那么"10"将出现为1然后是0,而不是10.

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