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

时间:2012-01-16 12:00:32

标签: java

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

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

提前致谢。

8 个答案:

答案 0 :(得分:32)

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 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);
    }

输出: 456789

答案 1 :(得分:17)

除了使用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);
}

答案 2 :(得分:12)

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

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

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

哦,这只会处理没有任何重音的拉丁语“a”到“z”字符等。

答案 3 :(得分:3)

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);
}

答案 4 :(得分:1)

首先,您需要编写一个循环来迭代字符串中的字符。请查看String类,其中有方法可以为您提供length并在每个索引处找到charAt

对于每个角色,您需要计算其数字位置。看看this question,了解如何做到这一点。

答案 5 :(得分:0)

这取决于字母表,但对于英语字母,请尝试:

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;
}

答案 6 :(得分:0)

只是逻辑我可以建议采用两个阵列。

一个是Char数组

,另一个是int数组。

将ur输入字符串转换为char数组,从char和int数组中获取char的位置。

不要指望源代码在这里

答案 7 :(得分:0)

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);
}
}