package com.duapp.itfanr;import java.math.*;import java.util.Arrays;public class CharDemo { public static void main(String args[]) { String num1 = "1234"; String num2 = "789";//此处没有考虑到负数情况 System.out.print(plusBigNum(num1, num2)); } static String plusBigNum(String num1, String num2) { int len1 = num1.length(); int len2 = num2.length(); // 格式化两个数,使之长度相同 if (len1 > len2) { for (int i = 0; i < len1 - len2; i++) { num2 = "0" + num2; } } else if (len2 > len1) { for (int i = 0; i < len2 - len1; i++) { num1 = "0" + num1; } } int[] numArr1 = str2IntArr(num1); int[] numArr2 = str2IntArr(num2); int[] result = add(numArr1, numArr2); StringBuffer sb = new StringBuffer(); for (int i = 0; i < result.length; i++) { if (result[result.length-1] ==0 &&i==result.length-1){ break ; } else sb.append(result[i]); } return sb.reverse().toString(); } static int[] str2IntArr(String str) { StringBuffer sb = new StringBuffer(str); String rvsstr = sb.reverse().toString(); int len = rvsstr.length(); int[] out = new int[len]; for (int i = 0; i < len; i++) { out[i] = Integer.parseInt(rvsstr.charAt(i) + ""); } return out; } public static int[] add(int a[], int b[]) { int maxLen = a.length; int[] sum = new int[maxLen + 1]; int d = 0; for (int i = 0; i < maxLen; i++) { int tempSum = a[i] + b[i] + d; sum[i] = tempSum % 10; d = tempSum / 10; // 进位 } return sum; }}Integer.parseInt 用于将字符转为十进制数字 myString.charAt 用于String转字符数组 参考: [1]. [2]. [3].