Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中从字符串解析负前缀整数_Java_Int - Fatal编程技术网

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

在java中从字符串解析负前缀整数,java,int,Java,Int,嗨,我有一个字符串,看起来像10-130-2,我想读空格之间的数字。我可以使用FOR语句和代码来实现这一点 Character.toString(myString.charAt(i)); 及 但当我尝试读取负数(如-1)时,我遇到了一个问题,并收到了错误消息: 09-09 13:06:49.630: ERROR/AndroidRuntime(3365): Caused by: java.lang.NumberFormatException: unable to parse '-' as int

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

Character.toString(myString.charAt(i));

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

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

有什么办法解决这个问题吗?

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

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

这就是您想要的吗

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

10
-1
30
-2

也许您想使用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);
}

这不完全是我想要的,但你给了我总体思路,所以我解决了问题:)thnx Jon:)
StringTokenizer st = new StringTokenizer("10 -1 30 -2");
while (st.hasMoreTokens()) {
  String intStr = st.nextToken();
  int x = Integer.parseInt(intStr);
  System.out.println(x);
}