当前位置: 首页 > 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();}
}
http://www.xdnf.cn/news/692227.html

相关文章:

  • 英飞凌SBC芯片TLE9263QX for STM32的库函数与使用
  • ⭐️⭐️⭐️ 免费的AI Clouder认证 ⭐️⭐️⭐️ 第四弹【课时1:课程概览】for「大模型Clouder认证:基于通义灵码实现高效AI编码」
  • 企业信息管理系统的设计与实现(代码+数据库+LW)
  • 【多线程初阶】初识线程 创建线程
  • 线性回归中标准方程法求逆失败的解法:正则化
  • 三维点云深度学习代码torch-points3d-SiamKPConvVariants复现记录(持续更新中)
  • MAC程序签名遇到的问题
  • 用结构填充平面
  • GUI 编程——python
  • PortSwigger-02-XXE
  • Gerapy二次开发:在Ubuntu服务器中利用pyenv+supervisor实现项目部署
  • 为 MCP Server 提供 Auth 认证,及 Django 实现示例
  • 三、zookeeper 常用shell命令
  • Spring AI 代理模式(Agent Agentic Patterns)
  • 基于Vue3.0的【Vis.js】库基本使用教程(002):图片知识图谱的基本构建和设置
  • 机器学习-随机森林
  • 算法训练第一天
  • 深度解析 torch.mean 的替代方案
  • Web前端快速入门(Vue、Element、Nginx)
  • 通过海康萤石API控制家里相机的云台及抓图
  • PHP:从Web开发基石到现代应用引擎的进化之路
  • 青岛市长任刚与深兰科技董事长陈海波会谈,深兰青岛项目即将进入快车道!
  • Nacos注册中心原理
  • System Properties 和 Settings.Global 的区别
  • 尚硅谷redis7 70-72 redis哨兵监控之案例实操7
  • go实现定时任务
  • QT 5.15.2 程序中文乱码
  • Linux基础 -- Linux 启动调试之深入理解 `initcall_debug` 与 `ignore_loglevel`
  • JavaScript核心总结与现代化应用指南
  • 弥散制氧机工作机制:高原低氧环境的氧浓度重构技术