Как найти все коды букв русского алфавита, заглавных и строчных, в том числе буквы Ё с помощью цикла
Изучаю java, выдали задание: "C помощью цикла и преобразования чисел в символы найдите все коды букв русского алфавита, заглавных и строчных, в том числе буквы Ё". Код написал, но буквы "ё" и "Ё" не входят в диапазон, потому как они исторически в таблице кодов отстоят отдельно. Как их можно отдельно прописать, или с помощью цикла можно как-то их выводить?
public class Alphabet {
public static void main(String[] args) {
for (char ch = 'А'; ch <= 'я'; ch++) {
System.out.println(ch + " (" + ((int) ch) + ")");
}
}
}
Ответы (6 шт):
Проблема в том, что Ё начинается до алфавита А-я, а ё идет после, поэтому добавил условие пропуска символов (таблица кириллицы в unicode)
Пример:
for (char ch = 'Ё'; ch <= 'ё'; ch++) {
if ((ch > 'Ё' && ch < 'А') || (ch > 'я' && ch < 'ё')) {
continue;
}
System.out.println(ch + " (" + ((int) ch) + ")");
}
Результат:
Ё (1025)
А (1040)
Б (1041)
В (1042)
Г (1043)
Д (1044)
Е (1045)
Ж (1046)
З (1047)
И (1048)
Й (1049)
К (1050)
Л (1051)
М (1052)
Н (1053)
О (1054)
П (1055)
Р (1056)
С (1057)
Т (1058)
У (1059)
Ф (1060)
Х (1061)
Ц (1062)
Ч (1063)
Ш (1064)
Щ (1065)
Ъ (1066)
Ы (1067)
Ь (1068)
Э (1069)
Ю (1070)
Я (1071)
а (1072)
б (1073)
в (1074)
г (1075)
д (1076)
е (1077)
ж (1078)
з (1079)
и (1080)
й (1081)
к (1082)
л (1083)
м (1084)
н (1085)
о (1086)
п (1087)
р (1088)
с (1089)
т (1090)
у (1091)
ф (1092)
х (1093)
ц (1094)
ч (1095)
ш (1096)
щ (1097)
ъ (1098)
ы (1099)
ь (1100)
э (1101)
ю (1102)
я (1103)
ё (1105)
for(char ch :"АаБбВвГгДдЕеЁёЖжЗзИиЙйКкЛлМмНнОоПпРрСсТтУуФфХхЦцЧчШшЩщЪъЫыЬьЭэЮюЯя".toCharArray()){
System.out.println(ch + " (" + ((int) ch) + ")");
}
Ну просто отдельно прописать:
public class Alphabet {
public static void main(String[] args) {
for (char ch = 'А'; ch <= 'я'; ch++) {
System.out.println(ch + " (" + ((int) ch) + ")");
}
System.out.println(ch + " (" + ((int) "Ё") + ")");
System.out.println(ch + " (" + ((int) "ё") + ")");
}
}
По условию задачи преобразовывать нужно числа в символы, а не символы в числа.
У меня такой вариант решения:
for (int i = 0; i < 65536; i++) {
char c = (char) i;
if (c == 'Ё' || c == 'ё') {
System.out.println(i + " - " + c);
} else if (c >= 'А' && c <= 'я') {
System.out.println(i + " - " + c);
}
}
Чтобы все было выведено в алфавитном порядке, я сделал таким образом:
for (char c = 'А'; c <= 'Е'; c++) {
if ( c >= 'А' && c <= 'Е');
System.out.println( (int) c + " - " + c);
}
System.out.println( (int) 'Ё' + " - " + 'Ё');
for (char c = 'Ж'; c <= 'е'; c++) {
if ( c >= 'Ж' && c <= 'е');
System.out.println( (int) c + " - " + c);
}
System.out.println( (int) 'ё' + " - " + 'ё');
for (char c = 'ж'; c <= 'я'; c++) {
if ( c >= 'ж' && c <= 'я');
System.out.println( (int) c + " - " + c);
}
можно так
for (int i = 0; i <= 65536; i++) {
if ((char)i == 'Ё' || (char)i == 'ё') {
System.out.println(i + " - " + (char)i);
}
else if ((char)i >= 'А' && (char)i <= 'я') {
System.out.println(i + " - " + (char)i);
}
}