import java.util.*;
public class Library {
/*
* totalBooks 存储图书的数组
* scan 初始化输入类对象
*/
String[] totalBooks = {"高等数学","计算机英语","JAVA编程","PHP面向对象","C++经典实例","高性能MySQL","JavaScript前端开发语言","jQuery高级教程"};
Scanner scan = new Scanner(System.in);
/*
* bookname 输入图书 名称
* 把数组转换成字符串 用indexOf()方法 查找返回 索引 如果不存在返回 int -1;
* 如果查找不到图书 则抛出图书不存在异常 接着调用welcome方法 重新输入
*/
public void bookName(){
String bookname = scan.next();
String books = Arrays.toString(totalBooks);
try {
if(books.indexOf(bookname) != -1){
System.out.println("book:"+ bookname);
}else{
throw new Exception("图书不存在");
}
} catch (Exception e) {
System.out.println("图书不存在!!!");
this.welcome();
}
}
/*
* bookNum 输入图书序号
* 判断序号如果小于1 或者 大于总图书的数组长度 则抛出异常;
* 如果查找不到图书 则抛出图书不存在异常 接着调用welcome方法 重新输入
*/
public void bookNum(){
int booknum = scan.nextInt();
try {
if(booknum < 1 || booknum > totalBooks.length){
throw new Exception();
}else{
System.out.println("book:"+totalBooks[booknum-1]);
}
} catch (Exception e) {
System.out.println("图书不存在!!!");
this.welcome();
}
}
/*
* input 输入
* 输入1 则按图书名称找书
* 输入2 则按图书序号找书
* 否则抛出异常 调用自身方法 重新输入
*/
public void welcome(){
System.out.println("输入命令:1-按照名称查找图书;2-按照序号查找图书");
String input = scan.next();
try {
if (input.equals("1")){
System.out.println("请输入图书名称:");
this.bookName();
}
else if (input.equals("2")) {
System.out.println("请输入图书序号:");
this.bookNum();
}else{
throw new Exception();
}
} catch (Exception e) {
// e.printStackTrace();
System.out.println("命令输入错误!请根据提示输入数字命令!"); //捕获异常输出提示
this.welcome(); //调用方法重新输入
} finally {
scan.close();
}
}
public static void main(String[] args) {
Library lib = new Library();
lib.welcome();
}
}