/*@author 围城
- 2016年3月30日 10:41:26
*/
package com.imooc;
public class Book {
public String name;
public int num;
public Book(String string, int i) {
// TODO Auto-generated constructor stub
}
@Override
public String toString() {
return "Book [name=" + name + ", num=" + num + "]";
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
}
package com.imooc;
import java.util.InputMismatchException;
import java.util.Scanner;
public class bookDemo {
public static void main(String[] args){
Book book[] ={ new Book("JAVA开发",100),
new Book("JSP开发",101),
new Book("javaweb",102)};
System.out.println("请选择按照书名或者序号查找图书:");
System.out.println("1:书名2:序号:");
Scanner sc = new Scanner(System.in);
int i =sc.nextInt();
if(i==1){
try{
System.out.println("请输入书名:");
String t= sc.next();
for(int j=0;j<=book.length-1;j++){
if(book[j].name.equals(t)){
System.out.println("查找到图书!");
}
}
}
catch(InputMismatchException e){
System.out.println("错误命令异常");
}
catch(ArrayIndexOutOfBoundsException e){
System.out.println("图书不存在异常!");
}
}
else if(i==2){
try{
System.out.println("请输入序号:");
int t= sc.nextInt();
for(int j=0;j<=book.length-1;j++){
if(book[j].num==t){
System.out.println("查找到图书!");
break;
}
}
System.out.println("查无此书!");
}
catch(InputMismatchException e){
System.out.println("错误命令异常");
}
catch(ArrayIndexOutOfBoundsException e){
System.out.println("图书不存在异常!");
}
}
else
System.out.println("请输入1或者2!!");
}
}
请选择按照书名或者序号查找图书:
1:书名2:序号:
1
请输入书名:
java开发
Exception in thread "main" java.lang.NullPointerException
at com.imooc.bookDemo.main(bookDemo.java:22)
遇到问题: for(int j=0;j<=book.length-1;j++){
if(book[j].name.equals(t)){
System.out.println("查找到图书!");
}
}
这里出错,还有一直没有弄明白。怎么拿数组中的某一属性和其他变量比较。这里总是有些问题。
热门评论
修改赋值之后,并且设定了条件来输出查找或者没查找到。已测试成功。 public Book(String string, int i) { name =string; num = i; } 主要是这步的问题。另外就是异常没有发挥作用,留待自己接下来解决了。
应该是你构造函数没把值传进去。所以空指针。对象没被创建