我的第一个问题:
目前我在BlueJ有一项工作,我需要申请。每个循环。 我的代码如下:
我的构造函数:
if(isValidPopulation(populationInMillions) && isValidStateProvinceName(provinceStateName) && isValidCapitalCity(provinceStateCapital)) {
this.populationInMillions = populationInMillions;
this.provinceStateName = provinceStateName;
this.provinceStateCapital = provinceStateCapital;
}
有助于我的构造函数的方法之一:
private boolean isValidStateProvinceName(String validName)
{
for(String temp : validStateProvince)
{
if(validStateProvince.contains(temp.equalsIgnoresCase(validName))) {
return true;
} else {
return false;
}
}
}
基本上我希望make是这样,validName可以在循环语句中使用任何情况。显然我正在执行这个错误。如果有人能帮助我,我会提供更多代码。
答案 0 :(得分:3)
我认为这就是你要找的东西:
private boolean isValidStateProvinceName(String validName)
{
for(String temp : validStateProvince)
{
if(temp.equalsIgnoresCase(validName)) {
return true;
}
}
return false;
}
此外,由于您正在通过validStateProvince
进行迭代,因此您希望将其与temp
进行比较。
答案 1 :(得分:1)
您的问题是在检查数组/列表中的第一个字符串后,您返回true或false,因此如果列表中的第一个字符串与传递的字符串不同,它将忽略所有内容并返回false。
如果匹配则只返回true,否则返回true,然后不执行任何操作。循环返回false后。
所以如果它是有效的,它将返回true并转义该方法,如果它检查所有可能性并且没有匹配则返回false。
private boolean isValidStateProvinceName(String validName)
{
for(String temp : validStateProvince)
{
if(validStateProvince.contains(temp.equalsIgnoresCase(validName))) {
return true;
}
}
return false;
}
你也不需要做.contains,因为你已经在检查它是否匹配,所以只需执行以下操作
if(temp.equalsIgnoresCase(validName)) {
return true;
}
如果要检查字符串是否包含省,请执行以下操作
if(temp.toLowerCase().contains(validName.toLowerCase())) {
return true;
}
希望这有用:D