You need to enable JavaScript to run this app. Java如何实现4位数字各位分离求和 已将输入转字符串
优惠活动
大模型
产品
解决方案
定价
更多

Java如何实现4位数字各位分离求和 已将输入转字符串

字符串拆分与字符转整数的实现方案

核心操作步骤

顺着你已经完成的「输入数字转字符串」的代码路径,只需要两步就能完成求和:

  • 拆分字符串每一位:Java 的 String 类提供的 charAt(索引) 方法可以直接按位置取出单个字符。因为要求输入是固定4位数字,转成字符串后长度必然为4,索引范围是0到3,完全可以覆盖每一位数字,不需要额外调用字符串分割逻辑。不推荐对这个简单场景使用split("")拆分为字符串数组,会生成额外的数组对象增加不必要的开销。
  • 字符转整数的核心避坑点:直接把字符类型强转为int会拿到该字符对应的ASCII码值(比如字符'2'强转int得到的是50,不是期望的2)。有两种可靠的转换方式:
    1. 将单个字符包装为长度为1的字符串,再调用Integer.parseInt()转为整数,逻辑最直观
    2. 利用数字字符ASCII连续的特性,用字符减去'0'的ASCII值得到对应整数,比如'2' - '0'的计算结果就是整数2,代码更简洁、性能更好

补全后的可运行代码

import java.util.Scanner;

public class Main 
{
  public static void main(String[] args) 
    {
    Scanner scan = new Scanner(System.in);
    System.out.print("Enter a four-digit number: ");
    int fourDigiter = scan.nextInt();
    
    String number = String.valueOf(fourDigiter);
    int sum = 0;
    // 遍历字符串的每一位
    for (int i = 0; i < number.length(); i++) {
        // 取出当前位置的字符,通过减'0'转为对应数字
        int digit = number.charAt(i) - '0';
        sum += digit;
    }
    System.out.println("各位相加结果为:" + sum);
  }
}

测试验证:输入2683时,遍历依次取出字符'2'、'6'、'8'、'3',转换后相加2+6+8+3=19,和预期输出完全一致。
鲁棒性提示:如果需要兼容非4位输入的场景,可以在转字符串后增加长度判断,当字符串长度不等于4时输出输入错误提示,避免结果不符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.12 03:57:03