Java利用字符串实现整数格式相加求和
2017-03-02 14:20
253 查看
/**
* @description 不适用int,long,float,double,BigDecimal进行数据相加
* 字符串保存长度超过Java基本类型中数字的保存长度值
* @开心农场
*/
public class StringSum {
public static void main(String[] args) {
String a = “123456789”;
String b = “987654321”;
System.out.println(sum(a, b));
}
}
* @description 不适用int,long,float,double,BigDecimal进行数据相加
* 字符串保存长度超过Java基本类型中数字的保存长度值
* @开心农场
*/
public class StringSum {
public static void main(String[] args) {
String a = “123456789”;
String b = “987654321”;
System.out.println(sum(a, b));
}
public static String sum(String aNum, String bNum) { // 字符串翻转 String n1 = new StringBuffer(aNum).reverse().toString(); String n2 = new StringBuffer(bNum).reverse().toString(); int len = 0; int aLen = aNum.length(); int bLen = bNum.length(); // 获取最长字符串的长度 len = (aLen >= bLen) ? aLen : bLen; //判断是否溢出 boolean overFlow = false; int nTakeOver = 0; // 短字符串高位补0 if (aLen < bLen) { for (int i = aLen; i < bLen; i++) { n1 += "0"; } } else { for (int i = bLen; i < aLen; i++) { n2 += "0"; } } //保存计算结果 StringBuffer buffer = new StringBuffer(); int bwInt = 0; for (int i = 0; i < len; i++) { int result = Integer.parseInt(n1.charAt(i) + "") + Integer.parseInt(n2.charAt(i)+ ""); result += bwInt; //当前计算结果数字是否大于10 if (result >= 10) { //最高位大于10则 在向高位借1 if (i == len - 1) { overFlow = true; //定义借位后高位数字为1 nTakeOver = 1; } //两数相加,如果大于10则获取十位数结果值 bwInt = result/10; //当前位置添加个位数 buffer.append(result % 10); } else { buffer.append(result); //没有上位则十位数为0 bwInt = 0; } } //高位加1 if (overFlow) { buffer.append(nTakeOver); } return buffer.reverse().toString(); }
}
相关文章推荐
- java中利用反射机制实现调用给定为字符串的方法名
- JAVA利用split实现切分字符串
- java工具类(五)之日期格式字符串与日期实现互转
- Java与JavaScript 完美实现字符串拆分(利用数组存储)与合并的互逆操作
- java网络编程--解析通过web.xml文件控制利用过滤器实现编码格式步骤
- 利用位运算实现两个整数相加
- 用java实现:利用递归算法返转一个整数
- 字符串转整数的java实现
- Java实现大整数相加
- java 实现将String字符串大写中文数字转换成int类型整数
- 将整数字符串转换成整数输出(JAVA实现,不能用自带函数)
- java如何实现日期格式和字符串之间的转化
- C语言关于利用sscanf实现字符串相加减
- Java平台要实现类似豆丁百度文科的文档在线阅读,总体思路是讲doc docx等文件格式利用jcom转换成pdf再用swftools转为swf。再用flexpaper组件显示swf。
- [Java] 自己实现字符串转换成整数
- java 实现 不限长整形字符串 相加
- 利用Timer类实现字符串移动代码 java
- java实现两个超大数相加,字符串实现
- 用字符串模拟两个大数相加——java实现
- 【LeetCode-面试算法经典-Java实现】【008-String to Integer (atoi) (字符串转成整数)】