数字翻转

题目描述: 对于一个整数X,定义操作rev(X)为将X按数位翻转过来,并且去除掉前导0。例如:
如果 X = 123,则rev(X) = 321;
如果 X = 100,则rev(X) = 1.
现在给出整数x和y,要求rev(rev(x) + rev(y))为多少? 
输入描述 :  输入为一行,x、y(1 ≤ x、y ≤ 1000),以空格隔开。
输出描述 :  输出rev(rev(x) + rev(y))的值

问题分析:该题目主要实现数字的翻转,翻转后如果前面有0,则去掉就好。
import java.util.Scanner;

/**
 * Created by admin on 2016/10/9.
 * 对于一个整数X,定义操作rev(X)为将X按数位翻转过来,并且去除掉前导0。例如:
 如果 X = 123,则rev(X) = 321;
 如果 X = 100,则rev(X) = 1.
 现在给出整数x和y,要求rev(rev(x) + rev(y))为多少?
 */
public class Rev {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();

        System.out.println(Rev.rev(Rev.rev(a)+Rev.rev(b)));
    }
    public static int rev(int n){
        String str = n+"";
        StringBuffer sb = new StringBuffer();
        for(int i=str.length()-1;i>=0;i--){
            sb.append(str.charAt(i));
        }
       return  Integer.parseInt(Rev.Delete_Zero(sb.toString()));
    }
    //去掉字符串前面的零
    public static String Delete_Zero(String str){
        return  str.replaceAll("^(0+)", "");

    }
}

你可能感兴趣的:(数字翻转)