Parse a negative prefix integer from string in java
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);
}
精彩评论