У меня есть заглавная буква, определенная в переменной string, и я хочу вывести следующую и предыдущую буквы в алфавите. Например, если переменная была равна 'C'
, я бы хотел вывести 'B'
и 'D'
.
Как прирастить переменную следующую или предыдущую букву в алфавите?
Ответ 1
Один из способов:
String value = "C";
int charValue = value.charAt(0);
String next = String.valueOf( (char) (charValue + 1));
System.out.println(next);
Ответ 2
Хорошо, если вы имеете в виду "ABC", тогда они разбиваются на две последовательности a-z и A-Z, самый простой способ - использовать переменную char и увеличивать индекс на единицу.
char letter='c';
letter++; // (letter=='d')
то же самое относится к декременту:
char letter='c';
letter--; // (letter=='b')
дело в том, что представление букв a-z равно 97-122, а A-Z - 65-90, поэтому, если дело с буквой важно, вам нужно обратить на это внимание.
Ответ 3
Если вы ограничены латинским алфавитом, вы можете использовать тот факт, что символы в таблице ASCII упорядочены по алфавиту, поэтому:
System.out.println((char) ('C' + 1));
System.out.println((char) ('C' - 1));
выводит D
и B
.
Что вы делаете, это добавить char
и int
, тем самым эффективно добавив int
в ascii-код char
. Когда вы вернетесь к char
, код ascii преобразуется в символ.
Ответ 4
просто так:
System.out.printf("%c\n",letter);
letter++;