想问一下将一个整数逆序输出时,整数前有负号或是整数结尾有0(0逆序输出后要省略)这种情况怎么处理

题目描述
将一个多位数反转,前导零不输出,不改变正负性。

输入解释
输入共一行,一个整数N

输出解释
输出共一行,表示反转后的整数。

输入样例
-380
输出样例
-83
提示
对于100%的数据,-10^10<=N<=10^10

//这是我目前写的源代码
import java.util.Scanner;

public class 逆序数 {

public static void main(String[] args) {
    Scanner in = new Scanner(System.in);

    int x = in.nextInt();
    String xo = Integer.toString(x);
    char a[] = xo.toCharArray();

    for (int i = xo.length() - 1; i >= 0; i--) {
        System.out.print(a[i]);
    }
}

}

稍微改了下,你看看满足要求不:


public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int x = in.nextInt();
        String xo = Integer.toString(x);
        char a[] = xo.toCharArray();
        char a2[] = new char[xo.length()];
        
        int j = 0;
        if('-'==a[0]||'+'==a[0])
            a2[j++]=a[0];
        boolean zero = true;
        for (int i = xo.length() - 1; i >= 0; i--) {
            if('-'==a[i]||'+'==a[i]) {
                continue;
            }
            if(a[i]!='0') {
                zero = false;
                a2[j++]= a[i];
            }
            if(a[i]=='0'&&zero==false) {
                a2[j++] = a[i];
            }
            if(a[i]=='0'&&zero==true) {
                continue;
            }
        }
        
        for(int i =0 ;i<j;i++) {
            System.out.print(a2[i]);
        }
    }