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");
}
}
}
答案 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
)。
对于字符串,您应该使用equals
或equalsIgnoreCase
方法
//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))