从列表中查找名称我哪里出错了

时间:2014-01-24 07:43:40

标签: java javascript

package stringvars;

import java.util.Scanner;
public class Names {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Scanner input = new Scanner (System.in);

        String Name;
        String li ;

        for(int j=0; j<4; j++){
            System.out.printf("Please enter your name: ");
            Name= input.next();
            if (Name = li )
                System.out.printf("li has been found");
        }
    }
}

5 个答案:

答案 0 :(得分:2)

你错过的东西

1)字符串必须与equals方法进行比较,以检查它们是否相等。

2)=是赋值运算符而不是检查相等。

3)您的li总是null,我还没有看到li分配给某个值。

您可能想要检查输入的字符串是否为li,然后排除String li ;只是你可以做

 if (Name.equals("li")){

 }

或者你可以做到

 String li ="li";

然后

  if (Name.equals(li)){

     }

注意:请关注java naming conventions。变量名称以小号开头。

答案 1 :(得分:1)

您正在使用=这是一个赋值运算符。您应该使用==进行比较(但请注意,它会比较引用而不是对象的内容,例如String)。

对于字符串,您应该使用equalsequalsIgnoreCase方法

    //initialize li to some value
    String li = "abcd";
    Name= input.next();
    if (Name.equals(li))
        System.out.printf("li has been found");
    }

答案 2 :(得分:0)

对于字符串比较,您应该使用String类的equal()方法。

答案 3 :(得分:0)

假设您想要搜索“li”: -

package json;

import java.util.Scanner; 公共类名称{

public void countStringPresence(int numberofUser,String lastName) {
    Scanner input = new Scanner (System.in);
    String[] Name = new String[numberofUser]; //for Example - 4
     for(int j=0; j<numberofUser; j++){
         System.out.println("Please enter your name: ");
         Name[j] = input.next();
    }
      for(String liExist:Name) {
          if(liExist.equals(lastName)) {
              System.out.println("Hurraayyy  !!!! Li has been found");
             break;
          } 
      }
      input.close();
}
public static void main(String[] args) {
    // TODO Auto-generated method stub
    Names nameCheck = new Names();
    nameCheck.countStringPresence(2, "li");

} }

答案 4 :(得分:0)

这:if (Name = li )应为if(Name.equals(li))