给指定长度的字符串加指定数字,末端补齐
给指定长度的字符串加指定数字,末端补齐
操作方法
- 01
/** * * * * @param a * 加数字符串1 * * @param b * 加数字符串2 * * @return 结果字符串 * * 分析: * * 1、取得两个字符串的长度 * * 2、把两个的长度做比较,并得出较长的长度,及较短的长度 * * 3、把长度较短的加数字符串,在左面补0,使之与较长的字符串一样长 * * 4、从最高位,一个个数的取出来相加,当然首先得转换为整型 * * 5、设置进位,如果两个数相加及加上进位大于等于10,并且这不是最左边一个字符相加,相加结果等于 * * (取出1+取出2+进位)-10,并把进位设为1;如果没有大于10,就把进位设为0,如些循环,把 * * 相加的结果以字符串的形式结合起来,就得到最后的结果 * */ private String doAdd(String a, String b) { String str = ""; int lenA = a.length(); int lenB = b.length(); int maxLen = (lenA > lenB) ? lenA : lenB; int minLen = (lenA < lenB) ? lenA : lenB; String strTmp = ""; for (int i = maxLen - minLen; i > 0; i--) { strTmp += "0"; } // 把长度调整到相同 if (maxLen == lenA) { b = strTmp + b; } else a = strTmp + a; int JW = 0;// 进位 for (int i = maxLen - 1; i >= 0; i--) { int tempA = Integer.parseInt(String.valueOf(a.charAt(i))); int tempB = Integer.parseInt(String.valueOf(b.charAt(i))); int temp; if (tempA + tempB + JW >= 10 && i != 0) { temp = tempA + tempB + JW - 10; JW = 1; } else { temp = tempA + tempB + JW; JW = 0; } str = String.valueOf(temp) + str; } return str; }