JavaEE习题笔记(四)

(一)题目

题目描述

描述:

输入一个整数,将这个整数以字符串的形式逆序输出

程序不考虑负数的情况,若数字含有0,则逆序形式也含有0,如输入为100,则输出为001

输入描述:

输入一个int整数

输出描述:

将这个整数以字符串的形式逆序输出

示例1

输入

复制

1516000

输出

复制

0006151

(二)解答

(1)方法一:使用数据结构完成

import java.util.*;
public class Main{
    
    public static void main(String[] args){
        //方法一:在进行逆序输出打印时,发现这是一个先进后出的结果,由此想到了stack
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            Integer num = sc.nextInt();
            //toString()方法是Object类中的方法,所以上面接收整形数需要用到包装类
            //而不是直接使用int类型
            String str = num.toString();
            int[] buf = new int[str.length()];
            Stack stack = new Stack();
            for(int i=0;i<str.length();i++){
                stack.push(str.charAt(i));
            }
            while(!stack.isEmpty()){
                System.out.print(stack.pop());
            }
        }
   }
}

(2)方法二:不需要什么数据结构,只需要打印出反序效果就行

import java.util.*;
public class Main{
    
    public static void main(String[] args){
        //方法二:
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            Integer num = sc.nextInt();
            //将int型的数转换为字符串就好操作了,上一句必须用int的包装类来承接
            //包装类属于对象,可以使用Object类中的toString()方法
            String str = num.toString();
            String[] buf = new String[str.length()];
            for(int i=0;i<str.length();i++){
                buf[i] = str.substring(i,i+1);
                //System.out.println(buf[i]);
                //千万不要在这个地方打印输出语句,就是不要输出答案无关
                //自己做个测试一下就注释掉,否则会影响系统判定
            }
            
            for(int i=buf.length-1;i>=0;i--){
                System.out.print(buf[i]);
            }
            
        }
    }
}

猜你喜欢

转载自blog.csdn.net/jaybillions/article/details/81122728