_潇潇暮雨
2014-11-17 12:29
求助:我这个程序的按照名称查找抛出不了异常。
package com.imooc.exception_test;
import java.util.Scanner;
public class Book {
public static void main(String[] args) {
// 用字符串数组保存书籍信息
String[] book = { "数据结构", "Java实战开发", "html5", "javascript", "高等数学" };
Book myBook = new Book();
// 处理IO
System.out.println("按照命令查找书籍:1-按照名称查找书籍;2-按照序号查找书籍");
Scanner scanner1 = new Scanner(System.in);
try {
int k = scanner1.nextInt();
if (k == 1) {
System.out.println("请输入书籍的名字:");
Scanner scanner2 = new Scanner(System.in);
String c = scanner2.nextLine();
myBook.findByname(c, book);
}
if (k == 2) {
System.out.println("请输入书籍的序号");
Scanner scanner3 = new Scanner(System.in);
int c = scanner3.nextInt();
myBook.findByIndex(c, book);
}
} catch (Exception e) {
// TODO: handle exception
System.out.println("命令输入错误,请按照提示输入数字命令");
}
}
// 按名查找,抛出“书名不存在异常”
public void findByname(String input, String book[]) {
try {
for (int i = 0; i < book.length; i++) {
if (book[i] == input) {
System.out.println("book:" + book[i].toString());
}
}
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
System.out.println("书名不存在异常");
}
}
// 按序号查找,抛出“序号不存在异常”
public void findByIndex(int index, String book[]) {
try {
System.out.println("book:" + book[index].toString());
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
System.out.println("这本书的序号不存在异常!");
}
}
}
这里判断字符串的时候不要用==,要用equals去比较,将代码中40的==换成equals就可以了。这里并不是抛出异常,而是判断全部是false
Java入门第三季
409775 学习 · 4546 问题
相似问题