`
fish8077
  • 浏览: 13423 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
最近访客 更多访客>>
社区版块
存档分类
最新评论

10进制字符串的转换

    博客分类:
  • java
阅读更多
最近面试的时候老碰到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 "";
		}
		// 最后一位加1
		nums[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();
	}
}

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

Global site tag (gtag.js) - Google Analytics