有没有办法在Java中找到字母的距离?
我的意思是例如:
A -> C = 3 (as A, B, C)
B -> G = 6 (as B, C, D, E, F, G)
R -> Z = 9 (as R, S, T, U, V, W, X, Y, Z)
Run Code Online (Sandbox Code Playgroud)
(我正在寻找包含第一个字母的距离)
谢谢!
jra*_*rad 12
你可以这样做:
int diff = Character.toLowerCase('C') - Character.toLowerCase('A');
Run Code Online (Sandbox Code Playgroud)
这是有效的,因为每个char都与ASCII值相关联.'C'的值为67,'A'为65,因此'C' - 'A'== 67 - 65.请注意,只有所有字符都是大写或所有字符都是小写时,这才有效.
对于包含单个字符的字符串:
String s1 = "A";
String s2 = "c";
int result = ((int)s2.toLowerCase().charAt(0) - (int)s1.toLowerCase().charAt(0)) + 1;
Run Code Online (Sandbox Code Playgroud)
如果您只使用字符(没有字符串),那么 Java 的Character类有一个静态toLowerCase()方法。
编辑
对于结果可能为负的情况('A' - 'C'):
result = Math.abs(result);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3508 次 |
| 最近记录: |