在if语句中检查多个字符串的最干净方法是什么,我希望能够检查用户所在的国家/地区是否使用将要放入(“ ???”)的欧元。因为这有效。

if (usercountry.equals("FRA") || usercountry.equals("FRA")||
    usercountry.equals("FRA") || usercountry.equals("FRA") ||
    usercountry.equals("FRA") || usercountry.equals("FRA") ||
    usercountry.equals("FRA") || usercountry.equals("FRA") ||
    usercountry.equals("FRA")) {
        costpermile = costpermile*1.42;   //(costpermile=£)   (costpermile*1.42=Euros)
}


但看起来糟透了

顺便说一句,我没有一遍又一遍地检查法国仍然是其原型代码,因此我没有进入欧洲每个国家而不首先检查是否有更好的方法。

最佳答案

1.正则表达式

if (usercountry.matches("FRA|GER|ITA"))
{
    costpermile = costpermile*1.42;
}


2.将国家/地区添加到数据结构(集合)中并检查

Set<String> eurocountries= new HashSet<String>();
eurocountries.add("FRA");eurocountries.add("GER");eurocountries.add("ITA");

if (eurocountries.contains(usercountry))
{
    costpermile = costpermile*1.42;
}


注意:我认为它是您正在寻找的regex方法

10-07 22:31