Подтвердить что ты не робот

Как проверить, является ли строка числовой?

У меня есть программа gpa, и она работает с методом equalsIgnoreCase(), который сравнивает две строки - букву "a" с пользовательским вводом, которая проверяет, помещают ли они "a" или нет. Но теперь я хочу добавить исключение с сообщением об ошибке, которое выполняется, когда число является входом. Я хочу, чтобы программа понимала, что целочисленный ввод не совпадает с строкой и дает сообщение об ошибке. Какие методы я могу использовать для сравнения переменной типа String для ввода типа int и исключения исключения?

4b9b3361

Ответ 3

Используйте метод ниже,

public static boolean isNumeric(String str)  
{  
  try  
  {  
    double d = Double.parseDouble(str);  
  }  
  catch(NumberFormatException nfe)  
  {  
    return false;  
  }  
  return true;  
}

Если вы хотите использовать регулярное выражение, вы можете использовать, как показано ниже,

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

Ответ 5

Используйте этот

public static boolean isNum(String strNum) {
    boolean ret = true;
    try {

        Double.parseDouble(strNum);

    }catch (NumberFormatException e) {
        ret = false;
    }
    return ret;
}

Ответ 6

public static boolean isNumeric(String string) {
    if (string == null || string.isEmpty()) {
        return false;
    }
    int i = 0;
    int stringLength = string.length();
    if (string.charAt(0) == '-') {
        if (stringLength > 1) {
            i++;
        } else {
            return false;
        }
    }
    if (!Character.isDigit(string.charAt(i))
            || !Character.isDigit(string.charAt(stringLength - 1))) {
        return false;
    }
    i++;
    stringLength--;
    if (i >= stringLength) {
        return true;
    }
    for (; i < stringLength; i++) {
        if (!Character.isDigit(string.charAt(i))
                && string.charAt(i) != '.') {
            return false;
        }
    }
    return true;
}

Ответ 7

Простой метод:

public boolean isBlank(String value) {
    return (value == null || value.equals("") || value.equals("null") || value.trim().equals(""));
}


public boolean isOnlyNumber(String value) {
    boolean ret = false;
    if (!isBlank(value)) {
        ret = value.matches("^[0-9]+$");
    }
    return ret;
}

Ответ 8

Здесь, как проверить, содержит ли вход цифру:

if (input.matches(".*\\d.*")) {
    // there a digit somewhere in the input string 
}

Ответ 9

Чтобы проверить все символы int, вы можете просто использовать двойной отрицательный. if (! searchString.matches( "[^ 0-9] + $" ))...

[^ 0-9] + $проверяет, есть ли какие-либо символы, которые не являются целыми, поэтому тест терпит неудачу, если он истинен. Просто НЕ, и вы вернетесь к успеху.

Ответ 10

Вы можете использовать метод Character.isDigit(char ch), или вы также можете использовать регулярное выражение.

Ниже приведен фрагмент:

public class CheckDigit {

private static Scanner input;

public static void main(String[] args) {

    System.out.print("Enter a String:");
    input = new Scanner(System.in);
    String str = input.nextLine();

    if (CheckString(str)) {
        System.out.println(str + " is numeric");
    } else {
        System.out.println(str +" is not numeric");
    }
}

public static boolean CheckString(String str) {
    for (char c : str.toCharArray()) {
        if (!Character.isDigit(c))
            return false;
    }
    return true;
}

}

Ответ 11

Я написал этот маленький метод в моей программе, поэтому я могу проверить, является ли строка числовой или, по крайней мере, каждый char является числом.

private boolean isNumber(String text){
    if(text != null || !text.equals("")) {
        char[] characters = text.toCharArray();
        for (int i = 0; i < text.length(); i++) {
            if (characters[i] < 48 || characters[i] > 57)
                return false;
        }
    }
    return true;
}