运行程序后可以输入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
代码长度限制16 KB
时间限制400 ms
内存限制64 MB
import java.util.Scanner;
import java.util.Arrays;
/**
* 若测试点2出现"非0返回"可在提交一次
*/
public class Main {
static Scanner sc = new Scanner(System.in);
static int[] arr = new int[0];
public static void main(String[] args) {
while (true){
String str = sc.next();
if(str.equals("fib")){
isFib();
}else if(str.equals("sort")){
isSort();
}else if(str.equals("search")){
isSearch();
}else if(str.equals("getBirthDate")){
isGetBirthDate();
}else {
System.out.println("exit");
break;
}
}
}
public static void isFib(){
int num = sc.nextInt();
int[] arr1= new int[3 + num];
arr1[0] = 1;
arr1[1] = 1;
arr1[2] = 2;
for (int i = 0; i < num; i++) {
if (i >= 3) arr1[i] = arr1[i - 1] + arr1[i - 2];
if(i != num - 1) System.out.print(arr1[i] + " ");
else System.out.println(arr1[i]);
}
}
public static void isSort(){
sc.nextLine();
String string = sc.nextLine();
String[] strings = string.split(" ");
int[] arr2 = new int[strings.length];
for (int i = 0; i < strings.length; i++) {
arr2[i] = Integer.parseInt(strings[i]);
}
Arrays.sort(arr2);
arr = arr2;
System.out.print("[");
for (int i = 0; i < arr2.length; i++) {
if(i != 0) System.out.print(", " + arr2[i]);
else System.out.print(arr2[i]);
}
System.out.println("]");
}
public static void isSearch(){
int num = sc.nextInt();
boolean flag = false;
for (int i = 0; i < arr.length; i++) {
if(arr[i] == num) {
flag = true;
System.out.println(i);
break;
}
}
if(!flag) System.out.println(-1);
}
public static void isGetBirthDate(){
int n = sc.nextInt();
for (int i = 0; i < n; i++) {
String date = sc.next();
String year = date.substring(6, 10);
String month = date.substring(10, 12);
String day = date.substring(12, 14);
System.out.println(year + "-" + month + "-" + day);
}
}
}
![](https://img-blog.csdnimg.cn/img_convert/0452ac0f1aa626425125979a5175f50e.png)