如何修改Java代码使大小写字母获相同索引及Lucky Sum
解决大小写字母Lucky Sum计算不一致的问题
修改后的完整代码
public static void main(String args[]) { obj.alphaSum("Adam"); // 现在输入"Adam"和"adam"会得到相同结果 } public static void alphaSum(String word) { String alphabet = " abcdefghijklmnopqrstuvwxyz"; int add = 0; for(int i = 0; i < word.length(); i++) { // 将当前字符统一转为小写,确保大小写字母匹配同一个索引 char ch = Character.toLowerCase(word.charAt(i)); int x = alphabet.indexOf(ch); System.out.println(ch + " " + x); add += x; } System.out.println("********************"); System.out.println("Lucky Sum: " + add); }
关键修改点
- 在获取每个字符时,调用
Character.toLowerCase()方法将字符统一转为小写,这样不管输入是大写还是小写字母,都会匹配到小写字母表中的对应索引。 - 也可以选择转为大写并调整字母表为大写版本,但转小写的方式更简洁,无需修改原有的字母表字符串。
原理说明
原代码中,大写字母不在" abcdefghijklmnopqrstuvwxyz"这个小写字母表里,indexOf()会返回-1,导致总和计算错误。统一转换为小写后,所有字母都能在字母表中找到对应的位置,从而保证"Adam"和"adam"的Lucky Sum完全一致。
内容的提问来源于stack exchange,提问作者Abdullah Malik
相关产品推荐
相关产品推荐

