Как проверить, является ли часть строки строчными? - PullRequest
0 голосов
/ 05 апреля 2020

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

Например: ввод "Jim" должен возвращать true (или в моем коде "окей"), в то время как «pam» или даже «pAM» должны возвращать false («erro» в моем коде).

Прямо сейчас метод всегда просто возвращает «erro».

ch1 = name.charAt(characterIndex);

while (loop <= numChars) { // numChars is the length of the word I put in, loop being what letter I start at.
    for (int i = 97; i < 123; i++) { // goes through the ASCII values for all the lowercase letters. 97 = a, 122 = z {
        if (ch1 == i) // ch1 is the character that is currently being checked. 
            continue;
        else { // THE ISSUE
            answer = "Erro"; // "Erro" is short for "Error" which I will check for in my implementing of the code
            break;             
        }
    }

    if (answer != "Erro") { // checking if I get an error or not
        loop++;
        characterIndex++;
        ch1 = name.charAt(characterIndex);
    } else {
        break;
    }
}

if (answer != "Erro")
    answer = "okay"; // I could have put anything here, but this is when things go right.

return answer; // I keep getting the result of Error, even when I explicitly give it an 'a'

1 Ответ

0 голосов
/ 05 апреля 2020

Если я правильно понимаю ваш вопрос, вы хотите вернуть одну строку, если ввод содержит заглавные буквы, и другую, если это не так. Почему бы просто не вернуть логическое значение? Вот как я бы решил ваш вопрос:

public static boolean containsUppercase(String input) {
    if(Character.isLowerCase(input.charAt(0))) // If the first letter is lowercase return false
        return false;

    for(int i = 1; i < input.length(); i++)
        if(Character.isUpperCase(input.charAt(i)))
            return true;

    return false;
}

Хорошо, вот некоторые вещи, которые не так с вашим кодом:

  • Вы используете == и != для проверить на равенство строк. Вместо этого используйте .equals(...).
  • Ваш первый for-l oop принимает только строчные буквы "a".
  • Вы храните ответ, который вы можете просто сохранить как логическое значение, но оно будет умнее просто вернуть результат сразу, когда что-то пойдет не так.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...