设为首页收藏本站

小钿自留地

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 9435|回复: 0
打印 上一主题 下一主题

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

[复制链接]
  • TA的每日心情
    开心
    2022-5-13 17:03
  • 签到天数: 16 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    26

    主题

    39

    帖子

    680

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    680
    跳转到指定楼层
    楼主
    发表于 2015-2-16 18:57:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    反序输出一个整数的三种方法(比如输入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数组,再反序输出即可

    帖子到这里结束,大家如果有更好的方法,欢迎回复^_^
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|小黑屋|小钿自留地 ( 湘ICP备15002355号  

    GMT+8, 2026-3-7 17:30 , Processed in 1.175847 second(s), 29 queries .

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表