如何获取java中字母的数字位置?

New*_*ent 16 java

如何获取java中字母的数字位置?

假设通过命令提示我输入了abc然后作为输出我需要得到123如何获得java中字母的数字位置?

提前致谢.

Ran*_*Rag 35

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);
}
Run Code Online (Sandbox Code Playgroud)

输出:

123456

@Shiki for Capital/UpperCase字母使用以下代码:

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);
}
Run Code Online (Sandbox Code Playgroud)

输出: __CODE__


小智 20

除了使用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);
}
Run Code Online (Sandbox Code Playgroud)


dty*_*dty 13

将每个字符转换为ASCII码,减去"a"的ASCII码并添加1.我故意将代码留作练习.

这听起来像是家庭作业.如果是这样,请将其标记为.

此外,这不会处理大写字母,因为您没有声明处理它们的任何要求,但是如果您需要在开始之前只是小写字符串.

哦,这只会处理拉丁语"a"到"z"字符而没有任何重音等.


shi*_*t66 5

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);
}
Run Code Online (Sandbox Code Playgroud)