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编程中,处理数字时,我们经常需要将数字格式化为包含千分位分隔符的字符串,以便于人类阅读。例如,一个大数字123456789.012可能需要转化为"123,456,789.012"的形式。这个过程可以通过使用`DecimalFormat`类...
java压缩字符串
java 字符串转16进制 16进制转字符串 将两个ASCII字符合成一个字节; java 字符串转16进制 16进制转字符串 将两个ASCII字符合成一个字节; java 字符串转16进制 16进制转字符串 将两个ASCII字符合成一个字节; java ...
在Java编程语言中,字符串处理是一项基础且重要的任务。标题提到的"Java检索字符串中是否存在某字符",实际上涉及到字符串的查找算法。这里主要讨论的是KMP(Knuth-Morris-Pratt)算法,这是一种高效的字符串匹配...
Java随机字符串生成器,可用于生成随机密码,加密算法密约(AES,RSA等)等场景,支持可选字符范围配置(如只允许数字,只允许字母,只允许数字字母,特殊字符等混合配置),即在选择的字符范围内去实现随机字符串...
在Java编程语言中,字符串是极其重要的数据类型,用于存储和操作文本信息。字符串的长度判断和截取是常见的操作,对于程序逻辑控制和数据处理至关重要。以下将详细讲解如何在Java中进行字符串长度的判断以及如何截取...
java 字符串数字混搭字符串排序[归类] java 字符串数字混搭字符串排序是指在 java 中对字符串数字混搭字符串进行排序的操作。这种排序方式需要考虑到字符串中既有字母又有数字的情况,对 sorter 进行自定义实现。 ...
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是微软发布的一款...
3. 按位相加:从低位到高位遍历两个字符串,将对应位的数字相加,并考虑进位。对于每一位,我们计算两数之和加上上一位的进位,然后根据结果更新当前位。如果和大于9,则需要进行进位,将值减去10,并将进位设置为1...
这个方法用来处理java中可能有一些特别的需要,一大串中英文混合,需要中间截断或是中英中间添加一些特别的标识,调用这个方法 第一个参数是要处理的字符串,第二个是要在中英字符中间插入的字符。调用就可以得到想...
在Java编程语言中,分解字符串是一项常见的任务,它涉及到对字符串进行分析,将字符串分割成多个子字符串。这个过程通常被称为字符串分割。在Java中,我们主要使用`String`类提供的`split()`方法来实现这一功能。...
在Java编程中,验证字符串是否符合JSON(JavaScript Object Notation)格式是一项常见的任务,尤其是在进行前后端数据交互时。JSON是一种轻量级的数据交换格式,它允许数据以键值对的形式存储,易于人阅读和编写,...
在Java编程语言中,字符串是极其重要且常用的数据类型,用于表示和操作文本。Java提供了两种主要的方式来创建字符串:通过`String`类的构造方法和使用`StringBuilder`或`StringBuffer`类。以下是对这些知识点的详细...
### JAVA日期与字符串的转换 在Java编程中,经常需要将日期对象转化为字符串形式以便于存储或显示,或者反过来将字符串转化成日期对象来进行日期计算等操作。本文将详细介绍如何在Java中实现这两种转换。 #### 一...