Как получить числовую позицию алфавитов в java?
Предположим, что в командной строке я ввел abc, а затем в качестве вывода мне нужно получить 123, как я могу получить числовое положение алфавитов в java?
Спасибо заранее.
Как получить числовую позицию алфавитов в java?
Предположим, что в командной строке я ввел abc, а затем в качестве вывода мне нужно получить 123, как я могу получить числовое положение алфавитов в java?
Спасибо заранее.
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
Другой способ решения этой проблемы, кроме использования преобразований 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);
}
Преобразуйте каждый символ в его код ASCII, вычтите код ASCII для "a" и добавьте 1. Я намеренно оставляю код в качестве упражнения.
Это звучит как домашнее задание. Если это так, отметьте его как таковой.
Кроме того, это не будет касаться букв верхнего регистра, поскольку вы не указали никаких требований к их обработке, но если вам нужно просто ввести строчную строку перед тем, как начать.
О, и это будет касаться только латинских символов "a" через "z" без каких-либо акцентов и т.д.
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);
}
Сначала вам нужно написать цикл для итерации над символами в строке. Взгляните на класс String
, который имеет методы, чтобы дать вам length
и найти charAt
для каждого индекса.
Для каждого символа вам нужно выработать свое числовое положение. Взгляните на этот вопрос, чтобы узнать, как это можно сделать.
Это зависит от алфавита, но от английского, попробуйте следующее:
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;
}
просто логика Я могу предложить взять два массива.
one - это Char массив
а другой - массив int.
преобразуйте входную строку ur в массив Char, получите позицию Char из Char и массива int.
Не ожидайте здесь исходного кода
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);
}
}