当前位置: 首页 > news >正文

Java数值字符串相加

两个纯数字字符串相加,不能用大整数相加的方法,无论多长的数字均可以相加。

核心思路

  • 从两个字符串的末尾开始逐位相加
  • 处理不同长度的数字(短的数字前面补0)
  • 处理进位
  • 最后反转结果字符串

关键点:

  • 使用charAt(i) - '0’将字符转换为数字
  • 使用StringBuilder构建结果字符串
  • 处理最高位的进位
package com;/*** 数值字符串相加*/
public class StringAddTest {public static void main(String[] args) {System.out.println(add("123", "456"));    // 输出: "579"System.out.println(add("999", "1"));      // 输出: "1000"System.out.println(add("0", "0"));        // 输出: "0"System.out.println(add("123456789", "987654321")); // 输出: "1111111110"}public static String add(String str1, String str2) {StringBuffer sb = new StringBuffer();char[] chars1 = str1.toCharArray();char[] chars2 = str2.toCharArray();int carry = 0;int c1 = chars1.length - 1;int c2 = chars2.length - 1;while (c1 >= 0 || c2 >= 0 || carry != 0) {int n1 = c1 >= 0 ? chars1[c1] - '0' : 0;int n2 = c2 >= 0 ? chars2[c2] - '0' : 0;int sum = n1 + n2 + carry;int add = sum % 10;sb.append(add);carry = sum / 10;c1--;c2--;}return sb.reverse().toString();}
}

相关文章:

  • 【QQ音乐】sign签名| data参数 | AES-GCM加密 | webpack(上)
  • C++ 复制构造函数:创建对象的 “拷贝大师”
  • 塔能空化泵节能方案:工厂能耗精准控制的革新之选
  • Vue开发系列——Vue中常见实现区别及Vue.js 模板编译原理
  • 8种常见数据结构及其特点简介
  • 【普及−】洛谷P1706 全排列问题
  • HOMIE——遥操类似ALOHA主从臂的外骨骼驾驶舱收集数据:通过上肢模仿学习和全身控制RL训练自主策略
  • flutter加载dll 报错问题
  • FastApi学习
  • 生成式引擎在不同行业的应用案例
  • 三级联动获取省市区
  • 【razor】采集的同时支持预览和传输的讨论和改造方案探讨
  • leetcode0670. 最大交换-medium
  • 【AUTOSAR OS】 保护功能解析:从原理到应用与源代码解析(下篇)
  • SSE vs WebSocket:两种通讯方案该如何选择?
  • Python学习(3) ----- Python的函数定义及其使用
  • 去除ai写作痕迹的软件有哪些
  • 打卡第31天:模块和库的导入
  • 生成式引擎的认知霸权:为什么传统内容失效?
  • 【超详细教程】零基础本地部署DeepSeek-Coder-v2 16B!Ollama+GPU加速,100%跑通!
  • 东莞seo整站优化代理/网络营销推广方式都有哪些
  • 精美网站建设/seo网站优化工具大全
  • 辽宁东方建设工程有限公司网站/网络服务器是指什么
  • 网站建设专业特长/如何自己做网页
  • 化妆品网站建设策划书/网站设计公司模板
  • 创建网站运营费用/站长工具收录查询