JAVA36 判断学生问题

形容

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

输出形容

控制台输出的int类型整数

输入形容

若分数非法则输入该分数,否则输入错误信息分数不非法

示例1

输出:

100

输入:

100

示例2

输出:

-1

输入:

分数不非法

解答

定义一个异样类,而后重写异样类输出异样信息处理的办法,留神此时到了构造方法。而后就是利用 if...else 条件分支对输出进行判断,依据合乎的条件进入不同的执行分支。如果输出的分数不满足 [0,100] 的状况,那么就间接抛出异样。

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);    }}

JAVA37 字符串去重

形容

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

输出形容

键盘输入的任意字符串

输入形容

去重后的字符串(不要求程序,预设代码中曾经给出输入)

示例1

输出:

helloworld

输入:

rdewhlo

解答

既然题目中曾经提醒了利用 HashSet,那么间接应用就好了,然而要留神的是,往 HashSet 里边增加元素失去的后果是无序的,如果要想得到有序的后果,那么则不能应用 HashSet

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<>();        for (int i = 0; i < str.length(); i++) {            hs.add(str.charAt(i));        }        for (char c : hs) {            System.out.print(c);        }    }}

JAVA38 汇合遍历

形容

请应用三种形式遍历一个 list 汇合

输出形容

键盘任意输出的五个int类型变量

输入形容

应用三种不同的办法遍历汇合,遍历输入时不换行,数字之间用空格隔开

示例1

输出:

1 2 3 4 5

输入:

一般for循环:1 2 3 4 5 加强for循环:1 2 3 4 5 迭代器遍历:1 2 3 4 5 

解答

次要考查根底语法,要牢记的两种 for 循环,一种是一般循环,另一种则是加强循环,而迭代器能把握就更好了。

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循环:");        for (int i = 0; i < list.size(); i++) {            System.out.print(list.get(i) + " ");        }        System.out.println();        System.out.print("加强for循环:");        for (int num : list) {            System.out.print(num + " ");        }        System.out.println();        System.out.print("迭代器遍历:");        Iterator it = list.iterator();        while (it.hasNext()) {            System.out.print(it.next() + " ");        }        System.out.println();    }}

JAVA39 排队零碎

形容

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

输出形容

输入形容

预设代码中曾经指定输入

解答

对于 VIP 客人,和一般客人最大的区别就在于 VIP 客人不必排队,所以无论何时 VIP 来都能够排到队列的最前边,利用 addFirst() 办法即可实现插队到第一位。

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;    }}

JAVA40 首尾交替出队

形容

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

输出形容

一组学生的名字

输入形容

交替打印队头队尾学生的名字

示例1

输出:

Tom Jim Lily Lucy Mary

输入:

TomMaryJimLucyLily

解答

分为两种状况,如果队列长队不小于 2,那么则一直从队列中顺次头、尾打印学生名字。另外一种状况就是此时队伍中只有一个学生了,这个时候只须要打印其名字即可。

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);        }        while (deque.size() >= 2) {            System.out.println(deque.pollFirst());            System.out.println(deque.pollLast());        }        if (deque.size() > 0) {            System.out.println(deque.pollFirst());        }    }}

本文由mdnice多平台公布