Java: преобразование каждой буквы в число, например a = 1, b = 2, c = 3 - PullRequest
0 голосов
/ 01 февраля 2020
char[] alphabet = {'a','b','c','d','e','f','g','h','i','j','k','l'...};

int number = 0;

char input = console.nextLine().charAt(0);

for (int i = 0; i <= 24; i++) {
   if(Character.isLetter(alphabet[i])) {
      number = i;
   }
}
System.out.println(number);

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

a = 1; б = 2; c = 3 ... и т. Д.

, но он продолжает превращать «число» в 10, по некоторым причинам, помогите, пожалуйста, мой код - полный беспорядок

Ответы [ 4 ]

1 голос
/ 01 февраля 2020

Для хранения пар ключ-значение вы можете использовать карту. Примером пары ключ-значение могут быть 'a' и 1.

Создайте карту и заполните ее парами ключ-значение.

Map<Character, Integer> letterMap = new HashMap<>();
letterMap.put('a', 1);
letterMap.put('b', 2);
...

После этого вы можете получить значение для персонаж с простой операцией "get".

char input = console.nextLine().charAt(0);
if(Character.isLetter(input)) {
    int number = letterMap.get(input); //Simple get operation
    System.out.println(number);
} else {
    System.out.println("You did not input a lowercase letter.");
}
0 голосов
/ 01 февраля 2020

Поскольку символы находятся в порядке в наборе символов ASCII, просто вычтите a из каждого и добавьте 1.

char[] alphabet = {'a','b','c','d','e','f','g','h','i','j','k','l'};
for (char c : alphabet) {
   System.out.println(c - 'a' + 1);
}

0 голосов
/ 01 февраля 2020

Вы должны быть яснее в том, что вы пытаетесь достичь sh. Что вы хотите сделать с этими числовыми позициями букв алфавита? Вы получаете пользовательский ввод? Примерно так может быть то, что вы ищете:

Scanner keyboard = new Scanner(System.in);
String alphabet = "abcdefghijklmnopqrstuvwxyz";
System.out.println("Enter string: ");
String input = "";
while(keyboard.hasNextLine()) {
    input += keyboard.nextLine().toLowerCase();
}

for(int i = 0; i < input.length(); i++) {
    System.out.print(alphabet.indexOf(input.charAt(i))+1+" ");
}
0 голосов
/ 01 февраля 2020

Вы можете просто так сделать

char ch = 'z';
int position = ch - 'a' + 1;
System.out.print(position);
...