如果不考虑负数情况,StringBuffer中的reverse方法可以在将数字转成字符串后对其直接进行翻转。
public class Reverse {
public static void main(String[] args) {
System.out.println("请输入一个整数:");
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
String str = Integer.toString(num);
StringBuffer sb = new StringBuffer(str);
sb.reverse();
System.out.println(sb.toString());
}
}
如果考虑负数情况的话,定义一个参数minus来决定是正数还是负数,如果数字小于0即为负数。然后将数字转成字符串,利用charAt方法和for循环将其反向输出,拼接成最终翻转后的字符串。
public class Reverse {
public static void main(String[] args) {
System.out.println("请输入一个整数:");
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
String minus = "";
if(num<0) {
minus="-";
num=-num;
}
System.out.print(minus);
String str = Integer.toString(num);
for(int i=str.length()-1; i>=0; i--) {
char c= str.charAt(i);
System.out.print(c);
}
}
}
还有一种方法不需要将数字转成字符串就可翻转,利用数字本身进行翻转。num%10会得到num个位上的数字,而这个数字在翻转后应为新数字的最高位,所以Nnum每次对其乘十,到最后就会来到最高位。以此类推,该算法最终可以得到翻转后的新数字Nnum,而且兼容了负数的情况。
public class Reverse {
public static void main(String[] args) {
System.out.println("请输入一个整数:");
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int Nnum = 0;
while(num !=0) {
Nnum=Nnum*10+num%10;
num=num/10;
}
System.out.println(Nnum);
}
}
关于数字翻转这次就先写到这里,其实最后一种方法还要考虑到溢出的情况,待笔者有时间再进行补充。