10进制字符串的转换
最近面试的时候老碰到10进制字符串的转换的问题,例如:"012345"-->"012346","999999"-->"000000"。
public class Test {public static void main(String[] args) {System.out.println(convert("012345"));}// "012345"-->"012346"public static String convert(String num) {StringBuffer sb = new StringBuffer("");char[] cs = num.toCharArray();int[] nums = new int[cs.length];// 把字符串转换成数字try {for (int i = 0; i < nums.length; i++) {nums[i] = Integer.parseInt(String.valueOf(cs[i]));}} catch (Exception e) {System.out.println("您输入的字符不合法!");return "";}// 最后一位加1nums[nums.length - 1] += 1;// 判断进位for (int i = nums.length; i > 0; i--) {try {if (nums[i - 1] >= 10) {nums[i - 2] += nums[i - 1] / 10;nums[i - 1] %= 10;} else {break;}} catch (Exception e) {for (int j = 0; j < nums.length; j++) {sb.append("0");}return sb.toString();}}for (int i = 0; i < nums.length; i++) {sb.append(nums[i]);}return sb.toString();}}