You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java如何实现将输入字母转换为字母表对应位置数值并求和的系统

问题分析

原有代码存在以下核心问题:

  • 循环内不必要地每次创建int数组,数组默认元素全为0,和目标要取的字母位置值完全无关
  • 字母表abcdefghijklmnopqrstuvwxyz的下标从0开始,a对应的下标为0,需要+1才能得到需求要求的1开头的位置值
  • 没有定义累加变量存储所有字母位置的总和,也没有最终输出总和的逻辑
  • 缺少Scanner类的导包语句,代码无法直接编译运行
修正后完整代码
import java.util.Scanner;

public class KeySumCalculator {
    public static void main(String[] args) {
        String alphabet = "abcdefghijklmnopqrstuvwxyz";
        System.out.println("Please input a key");
        Scanner key = new Scanner(System.in);
        String keyInput = key.nextLine().toLowerCase(); // 统一转小写兼容大写输入
        int sum = 0; // 定义累加变量存储总和

        for (int i = 0; i < keyInput.length(); i++) {
            char letter = keyInput.charAt(i);
            int index = alphabet.indexOf(letter);
            if (index != -1) { // 过滤非小写字母的字符
                sum += index + 1; // 下标+1得到1开头的位置值,累加到总和
            }
        }
        System.out.println(sum);
        key.close();
    }
}
效果验证

输入abc时,a对应1、b对应2、c对应3,总和为6,和需求示例完全一致。代码中加入了toLowerCase()处理,输入大写ABC也会得到相同结果。

内容的提问来源于stack exchange,提问作者Troy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.15 09:15:05