如何在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 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

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

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

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

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

除了使用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); } 
 char letter; for(int i=0; i='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; } 

只是逻辑我可以建议采取两个数组。

一个是Char数组

另一个是int数组。

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

不要在这里期待源代码

 String word = "blah blah"; for(int i =0;i