如何用Java编写字母转数字并计算姓名对应数值和的代码?
字母数值求和的Java实现
功能规则
- A对应1,Z对应26,大小写字母视为等同
- 忽略空格、撇号等非英文字符
- 计算字符串中所有有效字母的数值总和(例:Aron的总和为1+18+15+14=48)
实现代码
public class LetterSumCalculator { public static void main(String[] args) { // 测试示例1:基础输入 String test1 = "Aron"; int result1 = calculateLetterSum(test1); System.out.println("\"" + test1 + "\" 的数值和:" + result1); // 测试示例2:含特殊字符的输入 String test2 = "O'Neil Smith"; int result2 = calculateLetterSum(test2); System.out.println("\"" + test2 + "\" 的数值和:" + result2); } // 核心计算方法 public static int calculateLetterSum(String input) { int total = 0; // 统一转为小写,避免区分大小写 String lowerInput = input.toLowerCase(); for (char c : lowerInput.toCharArray()) { // 判断是否为小写英文字母 if (c >= 'a' && c <= 'z') { // 计算对应数值:'a'对应97,减97再加1得到1-26的范围 total += (c - 'a' + 1); } // 非字母字符自动跳过 } return total; } }
代码说明
- main方法:提供两个测试用例,验证基础功能和带特殊字符的场景
- calculateLetterSum方法:
- 先将输入字符串转为小写,统一处理大小写字母
- 遍历每个字符,只保留小写字母(对应原输入的大小写字母)
- 通过ASCII码计算数值:
c - 'a' + 1直接得到字母对应的1-26数值 - 非字母字符不参与计算,自动跳过
运行结果
- 输入"Aron"时,输出:
"Aron" 的数值和:48 - 输入"O'Neil Smith"时,输出:
"O'Neil Smith" 的数值和:124
内容的提问来源于stack exchange,提问作者cancan
相关产品推荐
相关产品推荐

