Как получить числовое положение алфавитов в java?

Как получить числовую позицию алфавитов в java?

Предположим, что в командной строке я ввел abc, а затем в качестве вывода мне нужно получить 123, как я могу получить числовое положение алфавитов в java?

Спасибо заранее.

Ответ 1

String str = "abcdef";
char[] ch  = str.toCharArray();
for(char c : ch){
    int temp = (int)c;
    int temp_integer = 96; //for lower case
    if(temp<=122 & temp>=97)
        System.out.print(temp-temp_integer);
}

Выход:

123456

@Shiki для заглавных/прописных букв использует следующий код:

String str = "DEFGHI";
char[] ch  = str.toCharArray();
for(char c : ch){
    int temp = (int)c;
    int temp_integer = 64; //for upper case
    if(temp<=90 & temp>=65)
        System.out.print(temp-temp_integer);
}

Выход:

456789

Ответ 2

Другой способ решения этой проблемы, кроме использования преобразований ASCII, заключается в следующем:

String input = "abc".toLowerCase();
final static String alphabet = "abcdefghijklmnopqrstuvwxyz";
for(int i=0; i < input.length(); i++){
    System.out.print(alphabet.indexOf(input.charAt(i))+1);
}

Ответ 3

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

Это звучит как домашнее задание. Если это так, отметьте его как таковой.

Кроме того, это не будет касаться букв верхнего регистра, поскольку вы не указали никаких требований к их обработке, но если вам нужно просто ввести строчную строку перед тем, как начать.

О, и это будет касаться только латинских символов "a" через "z" без каких-либо акцентов и т.д.

Ответ 4

char letter;
for(int i=0; i<text.length(); i++)
{
    letter = text.charAt(i);
    if(letter>='A' && letter<='Z')
        System.out.println((int)letter - 'A'+1);
    if(letter>='a' && letter<= 'z')
        System.out.println((int)letter - 'a'+1);
}

Ответ 5

Сначала вам нужно написать цикл для итерации над символами в строке. Взгляните на класс String, который имеет методы, чтобы дать вам length и найти charAt для каждого индекса.

Для каждого символа вам нужно выработать свое числовое положение. Взгляните на этот вопрос, чтобы узнать, как это можно сделать.

Ответ 6

Это зависит от алфавита, но от английского, попробуйте следующее:

String input = "abc".toLowerCase(); //note the to lower case in order to treat a and A the same way
for( int i = 0; i < input.length(); ++i) {
   int position = input.charAt(i) - 'a' + 1;
}

Ответ 7

просто логика Я могу предложить взять два массива.

one - это Char массив

а другой - массив int.

преобразуйте входную строку ur в массив Char, получите позицию Char из Char и массива int.

Не ожидайте здесь исходного кода

Ответ 8

String word = "blah blah";

for(int i =0;i<word.length;++i)
{

if(Character.isLowerCase(word.charAt(i)){
System.out.print((int)word.charAt(i) - (int)'a'+1);
}
else{
System.out.print((int)word.charAt(i)-(int)'A' +1);
}
}