为了账号安全,请及时绑定邮箱和手机立即绑定

求大牛解答,哭哭哭哭,写了一堆老是卡在

package search.Sequence;

public class BookIndex {
	private String  BookName;
	private int BookNumber;
    
	public void setBookName(String BookName){
	   this.BookName = BookName;
	}
	public void setBookNumber(int BookNumber){
		this.BookNumber = BookNumber;
	}
    public String getBookName(String testBookName){
    testBookName = this.BookName;
    return testBookName;
    }
    public int getBookNumber(){
    	return this.BookNumber;
    }
    public BookIndex(String newBookName,int newBookNumber){
    	this.setBookName(newBookName);
    	this.setBookNumber(newBookNumber);
    }
}
package search.Sequence;
import java.util.Scanner;
public class Searching {

	public static void main(String[] args) {
		// TODO 自动生成的方法存根
        BookIndex [] PutIndex={new BookIndex("达芬奇密码",1),
        	                  new BookIndex("计算",2),
        	                  new BookIndex("数据分析",3),
        	                  new BookIndex("唐家三少吃屎",4),
        	                  new BookIndex("天蚕土豆吃屎",5),
        	                  new BookIndex("卫斯理",6),
        	                  new BookIndex("侦探伽利略",7),
        	                  new BookIndex("达文西打字法",8),
        	                  new BookIndex("东京食屎狗",9)};
        int esp ;
	do{  esp = 0;
	     System.out.println("输入【1】按照编号查询书籍,【2】按照书名查询书籍:");
	     Scanner InPut_1 = new Scanner(System.in);
	     int putnum = InPut_1.nextInt();
	     if(putnum == 1){
	    	System.out.println("输入您想找的书籍编号:");
            int putBookNumber = InPut_1.nextInt();
            for(int i=0;i<i+1;i++){
            	int a=PutIndex[i].getBookNumber();
            	if(a==putBookNumber){
            		String outName = null;
            		System.out.println("书籍是:"+PutIndex[i].getBookName(outName));
            		break;
            	}else{continue;}
                                   }
	                      }
	     else if(putnum == 2){
	    	 System.out.println("输入您想找的书籍名字:");
	            String putBookName = InPut_1.nextLine();
	            for(int i=0;i<i+1;i++){
	            	String testBookName = null;
	            	PutIndex[i].getBookName(testBookName);/*这里老是出问题,之前是无参的不能赋值给别的变量,想不到我现在有参了还是这样子,出错*/
	            	if(putBookName==testBookName){
	            		System.out.println("书籍是:"+PutIndex[i].getBookName(testBookName));
	            		break;
	            	}else{continue;}
	                                   }	  
	                                   
	                                   
	                     }
	     else{esp=1;
	         System.out.println("输入有误请重新输入");
	          }
	     
	     
	     
	     }while(esp == 1);
	     


                                               }
}

求大牛解答我的问题,我先不考虑写try……catch的类,我要先解决图书的问题,想了我一整天了

正在回答

2 回答

BookIndex类的getBookName()函数改为:

public String getBookName(){
    return BookName;
    }

出错的地方改为:

String testBookName = PutIndex[i].getBookName();


0 回复 有任何疑惑可以回复我~

在else if中再定义一个Scanner类用于接收输入的字符串,然后在判断字符串的时候不要用==,要用equals就应该没有问题了,另外这么写可能出现数组下标越界的异常,在i循环的时候,循环条件可以写i<PutIndex.length

1 回复 有任何疑惑可以回复我~
#1

见习学徒戴株 提问者

您的方法我没有试,但是估计是对的。请问为什么要再定义多一个Sacnner类的对象?这是什么原理?不是定义Scanner的对象只是为了调用里面的方法吗?难道Scanner对象本身是会存放数据?我以为只是作为一个方法调用的工具,他们数据之间有冲突吗?
2014-12-18 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第三季
  • 参与学习       409788    人
  • 解答问题       4340    个

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

进入课程

求大牛解答,哭哭哭哭,写了一堆老是卡在

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信