7-1 jmu-Java-02基本语法-01-综合小测验 --笔记篇

题目

运行程序后可以输入4个选项,分别为:fib,sort,search,getBirthDate

fib:根据输入n,打印斐波那契数列。比如输入:3,输出:1 1 2

sort:输入一串数字,然后进行排序并输出,注意数组元素输出的格式为使用[ ]包括。提示:可直接使用函数Arrays相关方法处理输出。

search:如果找到返回所找到的位置,如果没找到,返回-1。提示: 可以先对数组排序,然后使用Arrays相关函数进行查找。

getBirthDate:输入n个身份证,然后把输入的n个身份号的年月日抽取出来,按年-月-日格式输出。

当输入不是这几个字符串(fib,sort,search,getBirthDate)的时候,显示exit并退出程序。

注意: 在处理输入的时候,尽量只使用Scanner的nextLine()方法接收输入,不要将nextLine()与其它next方法混用,否则可能会出现行尾回车换行未处理影响下次输入的情况。

参考:jdk文档的Arrays,String

输入格式:
fib
3
sort
-1 10 3 2 5
search
-1
search
0
getBirthDate
1
330226196605054190
e

输出格式:
1 1 2
[-1, 2, 3, 5, 10]
0
-1
1966-05-05
exit

代码

import java.util.*;

public class Main{
    public static void main(String args[]) {
        Scanner in = new Scanner(System.in);
        ArrayList<Integer> ss = new ArrayList<>();
        while (in.hasNext()) {
            String opts = in.next();
            switch (opts) {
                case "fib":
                    int o = in.nextInt();
                    fib(o);
                    break;
                case "sort":
                    in.nextLine();
                    ss.clear();
                    String p[] = in.nextLine().split(" ");
                    for (int i = 0; i < p.length; i++) {
                        ss.add(Integer.parseInt(p[i]));
                    }
                    Collections.sort(ss);
                    System.out.print("[" + ss.get(0));
                    for (int i = 1; i < ss.size(); i++) {
                        System.out.print(", " + ss.get(i));
                    }
                    System.out.println("]");
                    break;
                case "search":
                    int key=in.nextInt();
                    int sign=0;
                    for (int i=0;i<ss.size();i++){
                        if (key==ss.get(i)) {System.out.println(i);sign=1;}
                    }
                    if (sign==0) System.out.println(-1);
                    break;
                case "getBirthDate":
                    int num=in.nextInt();
                    for (int i=0;i<num;i++){
                        String id=in.next();
                        System.out.println(id.substring(6,10)+'-'+id.substring(10,12)+'-'
                        +id.substring(12,14));
                    }
                    break;
                default:
                    System.out.println("exit");
            }
        }}
        public static void fib ( int o){
            ArrayList<Integer> ss = new ArrayList<>();
            int q = 1, w = 1;
            ss.add(1);
            ss.add(1);
            for (int i = 0; i < 100; i++) {
                int t = q + w;
                ss.add(t);
                q = w;
                w = t;
            }
            for (int i = 0; i <= o - 1; i++) {
                if (i == 0) System.out.print(ss.get(i));
                else System.out.print(" " + ss.get(i));
            }
            System.out.println();
        }
    }

笔记

  1. nextline()读入要搞清楚余留的回车问题
  2. Integer.praseInt 字符串转数字
  3. switch-case default 写法

你可能感兴趣的:(java篇,java,笔记,算法)