问答详情
源自:2-5 认识 Java 中的 StringBuilder 类

输入一个字符串,如何比较是否和数组中的某个字符串相等?

String[] books={"高数","论语"};//创建了一个数组保存字符串;

Scanner input=new Scanner(System.in);

String stringc=input.next();//定义字符串类型的输入

//通过遍历比较

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

if(stringc==books[i]){

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

exsit=1;

}

}

if(exsit==0){

System.out.println("图书不存在!");

}

这里的比较myeclipce里没办法用.equals   可以这么用么,但是实际跑起来的时候输入高数或者论语都提示图书不存在

提问者:3000sama 2015-12-18 10:34

个回答

  • cicineer
    2016-01-19 10:13:51

    我擦,代码里面错误不少啊

  • 3000sama
    2015-12-18 12:03:09

    谢谢大家= =,这个是完整代码:某一次的作业,租书界面


    package library;

    import java.util.InputMismatchException;

    import java.util.Scanner;

    import java.util.Arrays;

    public class Borrow {


    public static void main(String[] args) {

    // TODO Auto-generated method stub

    String[] books={"高数","论语"};

    //Borrow borrow=new Borrow();

    Arrays.toString(books);

    boolean flag=true;

    while(flag){

    try{

    System.out.println("输入命令:1-按照书名查找图书;2-按照序号查找图书");

    Scanner input=new Scanner(System.in);

    int numc=input.nextInt();

    //String stringc=input.next();

    if(numc==1){

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

    int exsit=0;

    int i=0;

    String stringc=input.next();

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

    if(stringc.equals(books[i])){

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

    exsit=1;

    }

    }

    if(exsit==0){

    System.out.println("图书不存在!");

    }

    }else if(numc==2){

    System.out.println("输入图书序号:\n");

    int xuhao=input.nextInt();

    if(xuhao>0&&xuhao<3){

    System.out.println("book:"+books[xuhao-1]);

    }else{

    System.out.println("命令输入错误!请根据提示输入数字命令");

    }

    }

    }catch(InputMismatchException e){

    System.out.println("命令输入错误!请根据提示输入数字命令");

    }

    }

    }

    }

  • 3000sama
    2015-12-18 12:01:46

    卧槽。。这Myeclips简直有毒。。。我昨天跑了无数遍的equal都提示无法创建

  • 努力提升
    2015-12-18 10:51:54

    当然会不存在啦,==判断的是内存地址是否一样,equals才是比较字符串的内容是否相同,myeclipce应该是可以用equals的啊,是不是写的位置不对

  • 天启之魂
    2015-12-18 10:51:40

    只能用equals  你这里用的==比的是地址 达不到你要的效果  应该是别的地方有问题

  • Caballarii
    2015-12-18 10:42:37

    当然可以用equals,而且必须用equals,你把myeclipse不给你用的提示发出来,是不是()没有对应