我是初学者,如果这个问题很愚蠢我很抱歉.
我写了以下代码:
public class Traindata {
String City;
public Traindata(String t_city) {
if(t_city == "Judenburg" || "Knittelfeld" || "Zeltweg" || "Leoben" || "Bruck/Mur" || "Kapfenberg") {
City = t_city;
} else {
System.out.println("City not allowed: " + t_city + "\n");
}
Run Code Online (Sandbox Code Playgroud)
我要做的是检查t_city是否与其中一个允许的城市(Judenburg,Knittelfeld,Zeltweg,Leoben)相同.
但是当我尝试编译代码时,我收到此错误消息:"错误:二进制运算符的错误操作数类型'|'"
那么任何人都可以帮助我吗?我想我用的是"||" 错了,但我无法让它发挥作用.
E:谢谢大家,我甚至不知道equals()存在.
das*_*ght 13
您的代码中存在两个问题:您需要使用equals比较Java字符串,并且需要重复使用比较来构造||表达式:
if(t_city.equals("Judenburg") || t_city.equals("Knittelfeld") ... )
Run Code Online (Sandbox Code Playgroud)
更好的是,构建一个HashSet<String>你想要匹配的城市,并使用contains方法来检查条件:
Set<String> cities = new HashSet<String>(Arrays.asList(
"Judenburg", "Knittelfeld", "Zeltweg", "Leoben", "Bruck/Mur", "Kapfenberg"
));
...
if (cities.contains(t_city)) {
...
}
Run Code Online (Sandbox Code Playgroud)
以下是关于ideone的后续方法的演示.
if(t_city == "Judenburg" || "Knittelfeld" || "Zeltweg" || "Leoben" ||...
Run Code Online (Sandbox Code Playgroud)
两个问题:
1)equals()用于String比较
"Judenburg".equals(t_city)
Run Code Online (Sandbox Code Playgroud)
2)您的代码应如下所示:
if("Judenburg".equals(t_city) || "Knittelfeld".equals(t_city) ......
| 归档时间: |
|
| 查看次数: |
1026 次 |
| 最近记录: |