小钿自留地

标题: 反序输出一个整数的三种方法(比如输入1234,输出4321) [打印本页]

作者: hext    时间: 2015-2-16 18:57
标题: 反序输出一个整数的三种方法(比如输入1234,输出4321)

反序输出一个整数的三种方法(比如输入1234,输出4321)


主要是没有限定位数,不然我们可以用这种熟悉的方法来做:
  1. import java.util.Scanner;
  2. public class A{
  3.                 //输入一个整数,倒序后输出
  4.         public static void main(String[] args) {
  5.                 Scanner input = new Scanner(System.in);
  6.                 System.out.println("请输入一个4位的整数:");
  7.                 int a = input.nextInt();//原始数
  8.                 int q=a/1000%10;
  9.                 int b=a/100%10;
  10.                 int s=a/10%10;
  11.                 int g=a/1%10;
  12.                 System.out.println(""+g+s+b+q);
  13.         }
  14. }
复制代码
但是它没有限定是多少位,所以我们就要另想办法了。

首先靠逻辑思维用逻辑方法来做:
  1. import java.util.Scanner;
  2. public class B{
  3.                 //输入一个整数,倒序后输出
  4.         public static void main(String[] args) {
  5.                 Scanner input = new Scanner(System.in);
  6.                 System.out.println("请输入一个整数:");
  7.                 int a = input.nextInt();//原始数
  8.                 int b = 0;//保存倒序后的数
  9.                 while(a > 0) {
  10.                         b = b * 10 + a % 10;//a%10是取个位上的数
  11.                         a = a / 10; //将最后一位去掉
  12.                 }
  13.                 System.out.println(b);
  14.         }
  15. }
复制代码
不理解循环部分到底什么意思的,请看下图
假设输入1234

输出4321

需要注意的是,如果数字以零结尾的话,会出现这种情况:

后面的零会消失,所以可以把上面的b换成字符串用拼接的方式:
  1. import java.util.Scanner;
  2. public class C{
  3.                 //输入一个整数,倒序后输出
  4.         public static void main(String[] args) {
  5.                 Scanner input = new Scanner(System.in);
  6.                 System.out.println("请输入一个整数:");
  7.                 int a = input.nextInt();//原始数
  8.                 String b= 0;//保存倒序后的数
  9.                 while(a > 0) {
  10.                         b = b+ a % 10;//a%10是取个位上的数
  11.                         a = a / 10; //将最后一位去掉
  12.                 }
  13.                 System.out.println(b);
  14.         }
  15. }
复制代码
OK,上面是用逻辑思维做的,我们还可以用java给我们提供的工具:
  1. import java.util.Scanner;
  2. public class D{
  3.                 //输入一个整数,倒序后输出,答案
  4.         public static void main(String[] args) {
  5.                 Scanner input = new Scanner(System.in);
  6.                 StringBuffer s = new StringBuffer();
  7.                 System.out.println("请输入一个整数:");
  8.                 s.append(input.nextInt());//这里可以用.next(),容错率更高
  9.                 System.out.println(s.reverse());
  10.         }
  11. }
复制代码
reverse();是StringBuffer中一个可以反序输出字符串的方法
  1. import java.util.Scanner;
  2. public class E{
  3.                 //输入一个整数,倒序后输出,答案
  4.         public static void main(String[] args) {
  5.                 Scanner input = new Scanner(System.in);
  6.                 System.out.println("请输入一个整数:");
  7.                 String s=input.next();
  8.                 char[]a=s.toCharArray();
  9.                 for (int i = a.length-1;i>=0;i--){
  10.                         System.out.print(a[i]);
  11.                 }
  12.         }
  13. }
复制代码
String里的一个toCharArray()的方法,将字符串转成一个char数组,再反序输出即可

帖子到这里结束,大家如果有更好的方法,欢迎回复^_^





欢迎光临 小钿自留地 (http://bbs.hexiaotian.cn/) Powered by Discuz! X3.2