Определяет, является ли входная строка действительно действительным четырехзначным двойным литералом - PullRequest
0 голосов
/ 25 февраля 2019

У меня есть вопрос.Я должен определить, действительно ли входная строка является действительным четырехзначным двойным литералом

  1. Состоит из ровно следующих символов: '+', '-', '.'(десятичная точка) и от «0» до «9»
  2. Либо символ «+», либо «-» может отображаться только как первый символ
  3. Символ «.»(десятичная точка) символ должен появляться ровно один раз
  4. Все остальные символы должны быть от 0 до 9 символов

мои большие проблемы - поставить + -у первого символа и.один раз

1 Ответ

0 голосов
/ 25 февраля 2019

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

static boolean isValid(String s) {
        // 1
        if (s.length() != 4) return false;

        String digits = "0123456789";
        // 2
        if (s.charAt(0) != '+' && s.charAt(0) != '-' && digits.indexOf(s.charAt(0)) == -1) return false;


        byte decimalCount = 0;

        for (int i = 1; i < 4; i++) {
            if (s.charAt(i) == '.') decimalCount++;
                // 4
            else if (digits.indexOf(s.charAt(i)) == -1) return false;
        }

        //3
        return decimalCount == 1;
    }
...