irpas技术客

【Java刷题进阶】基础入门篇⑧_橙子!

未知 2563

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

文章目录 🌕前言第一题:判断学生成绩题目描述示例题解 第二题:字符串去重题目描述示例题解 第三题:集合遍历题目描述示例题解 第四题:排队系统题目描述题解 第五题:首尾交替出队题目描述示例题解


🌕前言

📩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); //输入异常信息 } } 第二题:字符串去重 题目描述

从键盘获取一串字符串,要求去除重复的字符。请使用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); } } } 第三题:集合遍历 题目描述

请使用三种方式遍历一个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(); } } 第四题:排队系统 题目描述

请设计一个排队程序,用户有普通客人和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; } } 第五题:首尾交替出队 题目描述

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

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

示例

输入: 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.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #Java刷题进阶基础入门篇⑧