问答详情
源自:1-9 经验总结

图书名字判断不了啊

因为篇幅问题我就只把执行相关的部分贴出来:

static String tushu[]={"论语","高数","数据结构","单片机应用","JAVA入门"}; //这部分是数组的代码


case "1":

System.out.println("输入图书名称:");

String name=s.nextLine();

name=name.trim();

System.out.println(tushu[0]);

for(int i=0;i<tushu.length;i++){

if(tushu[i]==name){

System.out.println("book:"+name);

break;

}//这不部分是选择图书名称匹配的代码   就是这里判断不出来。输出什么都试过了,就是进不了这个循环

if(i==(tushu.length-1)){

throw new NullPointerException("图书不存在");

}

}

break;


提问者:qq_老表_1 2016-03-06 01:27

个回答

  • 想想都醉了啊
    2016-03-21 18:24:46
    已采纳

    字符串对比 需要用到equals    if(tushu[i]==name)你这句改成  if(tushu[i].equals(name))

  • qq_老表_1
    2016-03-06 01:33:17

    说错了,是那个if判断进不去

  • qq_老表_1
    2016-03-06 01:30:01

    package 模拟借书系统;
    
    import java.util.Scanner;
    
    
    public class BorrowBooks {
    
    	static String tushu[]={"论语","高数","数据结构","单片机应用","JAVA入门"};
    	public static void main(String[] age){
    		boolean cc=true;
    		while(cc){
    			try {
    			System.out.println("输入命令:1-按照名称查找图书:2-按照标号查找图书");		
    			Scanner s= new Scanner(System.in);	
    			String a=s.nextLine();
    			switch (a) {
    			case "1":
    				System.out.println("输入图书名称:");
    				String name=s.nextLine();
    				name=name.trim();
    				System.out.println(tushu[0]);
    				for(int i=0;i<tushu.length;i++){					
    					if(tushu[i]==name){//这个循环进不去
    						System.out.println("book:"+name);
    						break;
    					}
    					if(i==(tushu.length-1)){
    						throw new NullPointerException("图书不存在");
    					}
    				}
    				break;
    
    			case "2":
    				System.out.println("请输入图书编号:");
    				String text=s.nextLine();
    				int n=Integer.parseInt(text);
    				System.out.println("book:"+tushu[n-1]);
    				break;
    			
    			default:
    				throw new typeException("输入命令错误,请按要求输入命令");
    			}
    			cc=false;
    
    
    		} catch (typeException e) {
    			// TODO 自动生成的 catch 块
    			System.out.println("输入命令错误,请按要求输入命令!");
    		}catch(NullPointerException e){
    			System.out.println("图书不存在!");
    		}catch(NumberFormatException e){
    			System.out.println("请按要求输入数字!");
    		}
    		}
    		
    		
    	}
    
    	
    }
    
    class typeException extends Exception {
    	/**
    	 * 
    	 */
    	private static final long serialVersionUID = 1L;
    	public typeException(){};
    	public typeException(String a){
    		super(a);
    	}
    }

    全部贴出来 大家看看哪里有问题啊