English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В этом примере вы узнаете, как проверить, является ли введенный символ буквой. Это делается с помощью оператора if...else или三元 оператора в Java.
public class Alphabet { public static void main(String[] args) { char c = '*'; if( (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) System.out.println(c + " является буквой."); else System.out.println(c + " не является буквой."); } }
Результат вывода
* не является буквой.
В Java переменная char хранит ASCII-код символа (число от 0 до 127), а не сам символ.
ASCII-код маленьких букв начинается от 97 до 122. ASCII-код больших букв начинается от 65 до 90. Таким образом, буква a хранится как97, буква z хранится как122. Аналогично, буква A хранится как65, буква Z хранится как90.
Теперь, когда мы сравниваем переменную c с диапазоном от "a" до "z" и от "A" до "Z", мы сравниваем её с ASCII-кодами от 97 до 122 и от 65 до 90
Поскольку ASCII-код * не介于 ASCII-кодами букв, программа выводит * не является буквой.
Вы также можете решить эту проблему с помощью三元 оператора в Java.
public class Alphabet { public static void main(String[] args) { char c = 'A'; String output = (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'); ? c + " является буквой." : c + " не является буквой."; System.out.println(output); } }
Результат вывода
A — это буква.
В предыдущем примере условные операторы if-else заменены三元 оператором (? :)
class Main { public static void main(String[] args) { // Декларация переменной char c = 'a'; // Проверка, является ли c буквой if (Character.isAlphabetic(c)) { System.out.println(c + " является буквой."); } else { System.out.println(c + " не является буквой."); } } }
Результат вывода
a — это буква.
В предыдущем примере обратите внимание на следующие выражения:
Character.isAlphabetic(c)
Здесь мы используем метод isAlphabetic() класса Character. Если указанная переменная является буквой, то возвращается true. Поэтому выполняется код в блоке if