Проверьте формат введенного пользователем номера java - PullRequest
0 голосов
/ 07 марта 2020

Я хочу проверить, введено ли пользователем двойное значение в формате XXX.YYY. Если это так, он вернул бы true, иначе false. Я хочу знать, возможно ли это сделать с помощью класса decimalFormat. Люди говорят, что используют регулярные выражения, но сейчас это выходит за рамки моих возможностей.

Ответы [ 2 ]

1 голос
/ 07 марта 2020

Чистый java струнный раствор:

  public static boolean isValid(String str) {
    if (str == null || str.length() != 7) {
      return false;
    }
    return Character.isDigit(str.charAt(0)) && Character.isDigit(str.charAt(1)) && Character.isDigit(str.charAt(2))
      && str.charAt(3)=='.' && 
      Character.isDigit(str.charAt(4)) && Character.isDigit(str.charAt(5)) && Character.isDigit(str.charAt(6));
  }

  public static void main(String[] args) {
    System.out.println(isValid("123.456"));
    System.out.println(isValid("12.456"));
    System.out.println(isValid("abc.456"));
  }
0 голосов
/ 07 марта 2020

попробуйте

    String s = new String("123.456"); // suppose it is string from your file
    String[] splitted  = s.split("\\."); //take the part before and after do in the array , splitted is array of two strings
    if(splitted.lenght == 2 && splitted[0].length() == 3 && splitted[1].length() == 3) // then it is in abc.xyz format
...