Как проверить, является ли строка числовой или нет, например, «1» есть, а «x» нет

#java #operating-system

Вопрос:

 static int Add() {
  Instindex  ;
  if ()

    int a = Integer.parseInt(instructions[Instindex]);
  else
    ReadInstruction();
  Instindex  ;
  if (x == (int) x)
    int b = Integer.parseInt(instructions[Instindex]);
  else
    ReadInstruction();
  return a   b;
}
 

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

Комментарии:

1. итак, Integer.parseInt не говорит вам, что «x» не является числовым?

2. Простой способ отформатировать свой код онлайн

3. Integer.parseInt говорит мне, но если он не числовой, это вызовет исключение

4. Так почему бы вам не создать метод, который улавливает исключение и возвращает значение false, а также возвращает значение true, если исключение не было вызвано?

5. Чтобы подчеркнуть — исключение не обязательно означает, что в вашем коде есть ошибка. Исключения-это инструменты, которые необходимо использовать.

Ответ №1:

Вы можете проверить вот так:

 boolean isNumeric(String str){
    try{
        Integer.parseInt(str);
        return true;
    }catch (NumberFormatException e){
        return false;
    }
}
 

Ответ №2:

 public static boolean isNumeric(String str) {
  return str.matches("-?\d (\.\d )?");  //match a number with optional '-' and decimal.
}
 

попробуйте это