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