加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java:糟糕的操作数类型

发布时间:2020-12-15 02:04:58 所属栏目:Java 来源:网络整理
导读:我是初学者,如果这个问题很愚蠢我很抱歉. 我写了以下代码: public class Traindata {String City;public Traindata(String t_city) { if(t_city == "Judenburg" || "Knittelfeld" || "Zeltweg" || "Leoben" || "Bruck/Mur" || "Kapfenberg") { City = t_cit
我是初学者,如果这个问题很愚蠢我很抱歉.

我写了以下代码:

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");
    }

我要做的是检查t_city是否与其中一个允许的城市(Judenburg,Knittelfeld,Zeltweg,Leoben)相同.

但是当我尝试编译代码时,我收到此错误消息:
“错误:二元运算符的错误操作数类型’|’”

那么任何人都可以帮助我吗?我想我用的是“||”错了,但我无法让它发挥作用.

E:谢谢大家,我甚至不知道equals()存在.

解决方法

您的代码中存在两个问题:您需要使用equals来比较Java字符串,并且需要重复使用比较来构造||表达:

if(t_city.equals("Judenburg") || t_city.equals("Knittelfeld") ... )

更好的是,构造一个HashSet< String>你希望匹配的城市,并使用包含方法来检查条件:

Set<String> cities = new HashSet<String>(Arrays.asList(
    "Judenburg","Knittelfeld","Zeltweg","Leoben","Bruck/Mur","Kapfenberg"
));
...
if (cities.contains(t_city)) {
    ...
}

这是一个demo of this later approach on ideone.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读