• 【Java刷题进阶】基础入门篇⑧


    📩很多朋友都问我学完基础知识以后怎样提高编程水平?当然是刷题啦!很多小伙伴都在纠结从哪里开始,今天给大家推荐一个身边朋友都在使用的刷题网站:点击进入牛客网刷题吧! 各大互联网大厂面试真题,成体系的分类题库,从入门到进阶,分类练习哦!


    🌕前言

    📩Java基础学习主要以练习为主,很多朋友听完视频课程学会基础以后感觉对练手项目无从下手,这里推荐去牛客网看看,这里的IT题库内容很丰富,属于国内做的很好的IT学习网站,而且是课程+刷题+面经+求职+讨论区分享,一站式求职学习网站,最最最重要的里面的资源全部免费!!

    在这里插入图片描述
    📩从基础开始练习,知识点编排详细,题目安排合理,题目表述以指导的形式进行。整个题单覆盖了java入门的全部知识点以及全部语法,通过知识点分类逐层递进,从基础开始到最后的实践任务,都会非常详细地指导你应该使用什么函数,应该怎么输入输出。
    在这里插入图片描述
    📩牛客网还提供题解专区和讨论区会有大神提供题解思路,对新手玩家及其友好,有不清楚的语法,不理解的地方,看看别人的思路,别人的代码,也许就能豁然开朗。快来点击链接开始刷题吧:牛客网刷题进阶!


    第一题:判断学生成绩

    题目描述

    定义一个方法用于录入学生的考试成绩,要求考试成绩必须在0-100之间,不满足就产生一个自定义异常,控制台输出一个错误信息"分数不合法"(请输出自定义异常对象的错误信息,将错误信息设置为分数不合法)

    输入描述:
    控制台输入的int类型整数
    输出描述:
    若分数合法则输出该分数,否则输出错误信息分数不合法

    示例

    输入: 100
    输出: 100

    输入:-1
    输出: 分数不合法

    题解

    import java.util.*;
     
    public class Main {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            int score = scanner.nextInt();
            try{
                if(score >= 0 && score <= 100) //正常分数输出
                    System.out.println(score);
                else
                    throw new ScoreException("分数不合法"); //抛出异常
            }
            catch(ScoreException str){
                System.out.println(str.getMessage()); //输出异常
            }
        }
    }
     
    class ScoreException extends Exception{ //继承自异常类的分数异常处理类
        public ScoreException(String message){ //构造函数
            super(message); //输入异常信息
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    第二题:字符串去重

    题目描述

    从键盘获取一串字符串,要求去除重复的字符。请使用HashSet解决这一问题

    输入描述:
    键盘输入的任意字符串
    输出描述:
    去重后的字符串(不要求顺序,预设代码中已经给出输出)

    示例

    输入: helloworld
    输出: rdewhlo

    题解

    import java.util.HashSet;
    import java.util.Scanner;
     
    public class Main {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            String str = scanner.nextLine();
            scanner.close();
            HashSet<Character> hs = new HashSet<>();
     
            //write your code here......
    //          新建HashSet,然后遍历字符串,将所有字符添加到Set。
    //          由于HashSet本身结构不允许有重复的项,所以会自动去除重复的元素
             
            for(int i=0;i<str.length();i++){
                hs.add(str.charAt(i));
                //str.charAt (i)的意思是第i个字符在字符串str中所占的位置
                //不能直接使用str[i]这种方法来取字符串的值,这种取法只适合数组根据索引下标取值
            }
    //         //第二种写法
    //         //因为增强for循环只能够对数组进行循环,故我们应该先对str字符串进行toCharArray()将其数组化,进而取得其值
    //         for(char c:str.toCharArray(){
    //             hs.add(c);
    //         }
             
            for (char c:hs) {
                System.out.print(c);
            }
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    第三题:集合遍历

    题目描述

    请使用三种方式遍历一个list集合

    输入描述:
    键盘任意输入的五个int类型变量
    输出描述:
    使用三种不同的方法遍历集合,遍历输出时不换行,数字之间用空格隔开

    示例

    输入: 1 2 3 4 5
    输出:
    普通for循环:1 2 3 4 5
    增强for循环:1 2 3 4 5
    迭代器遍历:1 2 3 4 5

    题解

    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    import java.util.Scanner;
    
    public class Main {
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            List<Integer> list = new ArrayList<>();
            int num1 = scanner.nextInt();
            int num2 = scanner.nextInt();
            int num3 = scanner.nextInt();
            int num4 = scanner.nextInt();
            int num5 = scanner.nextInt();
            scanner.close();
            list.add(num1);
            list.add(num2);
            list.add(num3);
            list.add(num4);
            list.add(num5);
            System.out.print("普通for循环:");
         
            //write your code here......
            for(int i=0;i<list.size();i++){
                //泛型容器类的获取其长度用size
                //数组,字符串获取其长度用length
                //泛型容器类获取其值可以用get方法,数组则是用[]加下标的方法
                System.out.print(list.get(i)+" ");
            }
     
            System.out.println();
            System.out.print("增强for循环:");
     
            //write your code here......
            for(int i:list){
                System.out.print(i+" ");
            }
     
            System.out.println();
            System.out.print("迭代器遍历:");
     
            //write your code here......
    //         int count = 0;
    //         int i =0;
    //         while(count<5){
    //             System.out.print(list.get(i)+" ");
    //             i++;
    //             count++;
    //         } 因题目要求使用迭代器循环,故舍弃该写法!
           
             
             
            //Iterator迭代器
            /**
                hasNext()方法:
                用来判断集合中是否有下一个元素可以迭代。如果返回true,说明可以迭代。
                Next()方法:
                用来返回迭代的下一个元素,并把指针向后移动一位。
            */
            //write new code
            Iterator it = list.iterator();
            while(it.hasNext()){
                System.out.print(it.next()+" ");
            }
            System.out.println();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67

    第四题:排队系统

    题目描述

    请设计一个排队程序,用户有普通客人和VIP客人之分,VIP客人不排队(即VIP客人在队列头部),目前队列中已有两位客人小明和小军在排队,请将VIP客人小红新增至队列头部。

    输入描述:

    输出描述:
    预设代码中已经指定输出

    题解

    import java.util.*;
     
    public class Main {
        public static void main(String[] args) {
            Guest guest1 = new Guest("小明",false);
            Guest guest2 = new Guest("小军",false);
            Guest vipGuest = new Guest("小红",true);
            Deque<Guest> deque = new ArrayDeque<>();
            deque.add(guest1);
            deque.add(guest2);
            deque.addFirst(vipGuest);
            System.out.println(deque);
        }
    }
    class Guest{
        String name;
        Boolean vip;
     
        @Override
        public String toString() {
            return name;
        }
     
        public Guest(String name, Boolean vip) {
            this.name = name;
            this.vip = vip;
     
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    第五题:首尾交替出队

    题目描述

    现从一队学生中抽人上台演讲,为公平起见,队头队尾交替抽取,请通过程序实现这个出队的过程。

    输入描述:
    一组学生的名字
    输出描述:
    交替打印队头队尾学生的名字

    示例

    输入: Tom Jim Lily Lucy Mary
    输出: Tom Mary Jim Lucy Lily

    题解

    import java.util.ArrayDeque;
    import java.util.Scanner;
     
    public class Main {
     
        public static void main(String[] args) {
            ArrayDeque deque = new ArrayDeque();
     
            Scanner scanner = new Scanner(System.in);
            while (scanner.hasNext()) {
                String name = scanner.next();
                // 初始化队列中的数据
                deque.offerLast(name);
            }
     
            // write your code here......
            int l = deque.size();
            for (int i=0; i<l; i++) {
                if (i%2==0) {
                    System.out.println(deque.pollFirst());
                }
                else {
                    System.out.println(deque.pollLast());
                }
            }
     
        }
     
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
  • 相关阅读:
    统计学三大相关系数介绍及代码实现
    从键盘输入两个数,求它们的和并输出 &&从键盘输入三个数到a,b,c中,按公式值输出
    TikTok在美正式推出电商业务,变现路径直接改变!
    ZZ308 物联网应用与服务赛题第B套
    4.1 Redis哨兵模式
    java 的三种 Base64
    Socks5代理与网络安全:保护您的隐私与数据
    报表控件Stimulsoft Report中的 自定义QR 码教程
    【code-server】Code-Server 安装部署
    基于C语言仿真实现的粒子火焰系统
  • 原文地址:https://blog.csdn.net/zhangxia_/article/details/126532563