Нужна помощь в решении проблем Java String - PullRequest
3 голосов
/ 14 февраля 2012

Я занимаюсь разработкой программируемого калькулятора для Android. Я получаю пользовательский ввод в виде последовательности символов, которую затем преобразую в строку. Но прежде чем я смогу поместить их в стек , я должен проверить, является ли ввод целым числом или знаком.

Я в основном из C ++. Поэтому у меня возникли проблемы с поиском правильных функций для работы. Любая помощь будет оценена.

Ответы [ 4 ]

4 голосов
/ 14 февраля 2012

Два возможных решения:

  1. Вы можете создать регулярное выражение , которое проверяет, является ли ваша строка числом
  2. Вы можете попытаться извлечь его целое значение, используя Integer.valueOf() и перехватывает исключение [ NumberFormatException ], если оно не число.

Первый, скорее всего, будет более эффективным, чем второй

0 голосов
/ 14 февраля 2012

Может соответствовать действительности ввода с этим регулярным выражением через [+ -]? \ D *

0 голосов
/ 14 февраля 2012

Вам необходимо Integer.parseInt и поймать соответствующий NumberFormatException, если пользователь не введет номер:

try
{
  // the String to int conversion happens here
  int i = Integer.parseInt(s.trim());

  // print out the value after the conversion
  System.out.println("int i = " + i);
}
catch (NumberFormatException nfe)
{
  System.out.println("NumberFormatException: " + nfe.getMessage());
}
0 голосов
/ 14 февраля 2012

Не разрешать пользователю вводить текст и специальные символы в Текстовое поле (Edittext) . Когда пользователь вводит число в текстовое поле, преобразуйте это число в целое число следующим образом Integer.parseInt (yourstring );

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...