`
jinhailion
  • 浏览: 47855 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

[转载]java长字符串数字相加

 
阅读更多
import java.util.regex.Pattern;
/**
 * @author clydelou
 * 
 */
public class Test {
	/**
	 * @param args
	 */
	public static String sum(String s, String t) {
		Pattern pattern = Pattern.compile("[0-9]+?");
		if (!pattern.matcher(s).matches() || !pattern.matcher(t).matches()) {
			System.out.println("Error");
			System.out.println("s = /""+s+"/", t = /""+t+"/"");
			return "";
		} else {
			StringBuilder sb = new StringBuilder();
			int length0 = s.length();
			int length1 = t.length();
			s = new StringBuilder(s).reverse().toString();
			t = new StringBuilder(t).reverse().toString();
			int min = (length0 > length1 ? length1 : length0);
			boolean flag = (length0 > length1 ? true : false);
			int temp = 0;
			for (int i = 0; i < min; i++) {
				char x = s.charAt(i);
				char y = t.charAt(i);
				int result = x - '0' + y - '0' + temp;
				int r1 = result % 10;
				temp = result / 10;
				sb.append(r1);
			}
			if (flag) {
				while (temp != 0 && min < length0) {
					int result = s.charAt(min) - '0' + temp;
					int r1 = result % 10;
					temp = result / 10;
					sb.append(r1);
					min++;
				}
				if (min < length0) {
					String str = s.substring(min, length0);
					sb.append(str);
				}
				if (temp != 0) {
					sb.append(temp);
				}
			} else {
				while (temp != 0 && min < length1) {
					int result = t.charAt(min) - '0' + temp;
					int r1 = result % 10;
					temp = result / 10;
					sb.append(r1);
					min++;
				}
				if (min < length1) {
					String str = t.substring(min, length1);
					sb.append(str);
				}
				if (temp != 0) {
					sb.append(temp);
				}
			}
			return sb.reverse().toString();
		}
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String s = "21341234568787667776768685";
		String t = "557467674876856785678987464";
		String m = "999999999";
		String n = "999999999";
		System.out.println(sum(s, t));
		System.out.println(sum(t, s));
		System.out.println(sum(m, n));
		System.out.println(sum("a", "1"));
	}
}

分享到:
评论

相关推荐

    java将字符串中数字转换为中文大写,在输出字符串

    java将字符串中数字转换为中文大写,在输出字符串java将字符串中数字转换为中文大写,在输出字符串java将字符串中数字转换为中文大写,在输出字符串java将字符串中数字转换为中文大写,在输出字符串java将字符串中数字...

    java字符串类型数字设置千分位分隔

    在Java编程中,处理数字时,我们经常需要将数字格式化为包含千分位分隔符的字符串,以便于人类阅读。例如,一个大数字123456789.012可能需要转化为"123,456,789.012"的形式。这个过程可以通过使用`DecimalFormat`类...

    java压缩字符串

    java压缩字符串

    java 字符串转16进制 16进制转字符串 将两个ASCII字符合成一个字节;

    java 字符串转16进制 16进制转字符串 将两个ASCII字符合成一个字节; java 字符串转16进制 16进制转字符串 将两个ASCII字符合成一个字节; java 字符串转16进制 16进制转字符串 将两个ASCII字符合成一个字节; java ...

    Java检索字符串中是否存在某字符

    在Java编程语言中,字符串处理是一项基础且重要的任务。标题提到的"Java检索字符串中是否存在某字符",实际上涉及到字符串的查找算法。这里主要讨论的是KMP(Knuth-Morris-Pratt)算法,这是一种高效的字符串匹配...

    Java随机字符串生成器,可用于生成随机密码,密约等场景,支持字符范围配置(如只允许数字,只允许字母,只允许数字字母,特殊字符等混合配置)

    Java随机字符串生成器,可用于生成随机密码,加密算法密约(AES,RSA等)等场景,支持可选字符范围配置(如只允许数字,只允许字母,只允许数字字母,特殊字符等混合配置),即在选择的字符范围内去实现随机字符串...

    字符串长度的判断 JAVA

    在Java编程语言中,字符串是极其重要的数据类型,用于存储和操作文本信息。字符串的长度判断和截取是常见的操作,对于程序逻辑控制和数据处理至关重要。以下将详细讲解如何在Java中进行字符串长度的判断以及如何截取...

    java字母数字混搭字符串排序[归类].pdf

    java 字符串数字混搭字符串排序[归类] java 字符串数字混搭字符串排序是指在 java 中对字符串数字混搭字符串进行排序的操作。这种排序方式需要考虑到字符串中既有字母又有数字的情况,对 sorter 进行自定义实现。 ...

    java 字符串工具类 java 字符串工具类

    java 字符串工具类 java 字符串工具类java 字符串工具类 java 字符串工具类java 字符串工具类 java 字符串工具类java 字符串工具类 java 字符串工具类java 字符串工具类 java 字符串工具类java 字符串工具类 java ...

    java字符串处理取出括号内的字符串

    在Java编程语言中,字符串处理是一项常见的任务,特别是在解析、分析或操作文本数据时。本篇文章将深入探讨如何从字符串中提取括号内的内容,主要关注于基础的字符串操作、正则表达式以及如何利用这些工具来实现目标...

    java 分割字符串

    在Java编程语言中,分割字符串是一项常见的操作,它允许我们将一个长字符串分解成多个子字符串,每个子字符串对应原字符串中的某一部分。这通常通过使用`split()`方法来实现,该方法是`String`类的一个实例方法。让...

    数据库字符串相加---字符串相加函数

    根据提供的信息,本文将详细介绍一个在SQL Server 2000环境下用于字符串拼接的自定义函数,并对该函数的功能、实现方法以及应用场景进行深入解析。 ### 一、SQL Server 2000简介 SQL Server 2000是微软发布的一款...

    C代码实现超长整数字符串 相加,及相应执行程序

    3. 按位相加:从低位到高位遍历两个字符串,将对应位的数字相加,并考虑进位。对于每一位,我们计算两数之和加上上一位的进位,然后根据结果更新当前位。如果和大于9,则需要进行进位,将值减去10,并将进位设置为1...

    java 中字符串只中英数字混合需要分割的解决办法

    这个方法用来处理java中可能有一些特别的需要,一大串中英文混合,需要中间截断或是中英中间添加一些特别的标识,调用这个方法 第一个参数是要处理的字符串,第二个是要在中英字符中间插入的字符。调用就可以得到想...

    java 分解字符串

    在Java编程语言中,分解字符串是一项常见的任务,它涉及到对字符串进行分析,将字符串分割成多个子字符串。这个过程通常被称为字符串分割。在Java中,我们主要使用`String`类提供的`split()`方法来实现这一功能。...

    java验证字符串是否符合json格式

    在Java编程中,验证字符串是否符合JSON(JavaScript Object Notation)格式是一项常见的任务,尤其是在进行前后端数据交互时。JSON是一种轻量级的数据交换格式,它允许数据以键值对的形式存储,易于人阅读和编写,...

    java 创建字符串类

    在Java编程语言中,字符串是极其重要且常用的数据类型,用于表示和操作文本。Java提供了两种主要的方式来创建字符串:通过`String`类的构造方法和使用`StringBuilder`或`StringBuffer`类。以下是对这些知识点的详细...

    JAVA日期与字符串的转换

    ### JAVA日期与字符串的转换 在Java编程中,经常需要将日期对象转化为字符串形式以便于存储或显示,或者反过来将字符串转化成日期对象来进行日期计算等操作。本文将详细介绍如何在Java中实现这两种转换。 #### 一...

Global site tag (gtag.js) - Google Analytics