如何在java中获取字母的数字位置?
假设通过命令提示我输入了abc然后作为输出我需要得到123如何获得java中字母的数字位置?
提前致谢。
答案 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);
}
}