Вывод алфавита в Java — программа печати букв A-Z через цикл

Задача — определить, является ли заданный символ буквой английского алфавита (a..z или A..Z). На programiz даны три способа: через if..else с ASCII-кодами, через тернарный оператор и через готовый метод Character.isAlphabetic().

Пример 1: проверка через if…else

public class Alphabet {

    public static void main(String[] args) {

        char c = '*';

        if( (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'))
            System.out.println(c + " is an alphabet.");
        else
            System.out.println(c + " is not an alphabet.");
    }
}

Вывод:

* is not an alphabet.

Примечание

В Java переменная char хранит не сам символ, а его ASCII-код — число от 0 до 127.

ASCII-коды строчных букв — от 97 до 122. ASCII-коды заглавных — от 65 до 90. То есть буква a хранится как 97, а z — как 122. Точно так же A — это 65, а Z90.

Когда мы сравниваем переменную c со значениями от 'a' до 'z' и от 'A' до 'Z', на самом деле сравниваем её ASCII-код с диапазонами 97–122 и 65–90.

Поскольку ASCII-код символа * не попадает в диапазон букв, программа печатает «* is not an alphabet».

Пример 2: проверка через тернарный оператор

То же самое, но компактнее — через ? :.

public class Alphabet {

    public static void main(String[] args) {

        char c = 'A';

        String output = (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')
                ? c + " is an alphabet."
                : c + " is not an alphabet.";

        System.out.println(output);
    }
}

Вывод:

A is an alphabet.

Здесь if..else заменён на тернарный оператор (? :).

Пример 3: проверка через метод isAlphabetic()

Java уже умеет проверять буквы — в классе Character есть готовый метод isAlphabetic(). Самый короткий и читаемый вариант.

class Main {
  public static void main(String[] args) {

    // declare a variable
    char c = 'a';

    // checks if c is an alphabet
    if (Character.isAlphabetic(c)) {
      System.out.println(c + " is an alphabet.");
    }
    else {
      System.out.println(c + " is not an alphabet.");
    }
  }
}

Вывод:

a is an alphabet.

Обрати внимание на выражение:

Character.isAlphabetic(c)

Здесь используется метод isAlphabetic() класса Character. Он возвращает true, если переданная переменная — буква алфавита. В этом случае выполняется блок if.