开发者

Parse a negative prefix integer from string in java

开发者 https://www.devze.com 2023-04-04 05:37 出处:网络
Hi i have a string looking something like this 10 -1 30 -2 and i want to read the numbers between spaces. I can do this using a FOR statement and the code

Hi i have a string looking something like this 10 -1 30 -2 and i want to read the numbers between spaces. I can do this using a FOR statement and the code

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

and

Integer.parseInt(myString);

But i face a problem when i try to read negative number like -1 and i got the error message:

09-09 13:06:49.630: ERROR/An开发者_如何学JAVAdroidRuntime(3365): Caused by: java.lang.NumberFormatException: unable to parse '-' as integer

Any ideas how to solve this ??


Is this what you want?

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

This will print:

10
-1
30
-2


You're trying to parse a single character ('-') (after converting it to a string, admittedly) instead of the string "-1". If you use charAt you'll be parsing a single digit at a time, so "10" will come out as 1 and then 0, not 10.

If you just split your string on spaces, you should be able to parse the strings with no problems.


Maybe you want to use a StringTokenizer to split the String at certain characters.

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

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号