Разбор отрицательного префикса целого числа из строки в Java - PullRequest
1 голос
/ 09 сентября 2011

Привет, у меня есть строка, похожая на это 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 ]

8 голосов
/ 09 сентября 2011

Это то, что вы хотите?

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

Это напечатает:

10
-1
30
-2
7 голосов
/ 09 сентября 2011

Вы пытаетесь проанализировать один символ ('-') (после его преобразования, по общему признанию) вместо строки "-1".Если вы используете charAt, вы будете анализировать одну цифру за раз, поэтому «10» будет иметь значение 1, а затем 0, а не 10.

Если вы просто разделитеваша строка на пробелах, вы должны быть в состоянии разобрать строки без проблем.

0 голосов
/ 09 сентября 2011

Может быть, вы хотите использовать 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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...