如何检查 CountryName 和 capitalName 实例变量是否都以大写字母开头? 我确定我必须使用涉及类似"^[A-Z]"的正则表达式,但不确定如何或在哪里放置完整代码。我是java的初学者,希望得到任何帮助或建议。
java.util.regex.*;
public class CountryInfo {
private String countryName;
private String capitalName;
public CountryInfo (String countryName, String capitalName) {
super();
this.countryName=countryName;
this.capitalName=capitalName;
}
public String getCountryName() {
return countryName;
}
public void setCountryName(String countryName) {
this.countryName = countryName;
}
public String getCapitalName() {
return capitalName;
}
public void setCapitalName(String capitalName) {
this.capitalName = capitalName;
}
}
最简单的方法是使用以下代码
char c = countryName.charAt(0);
if (c >= 'A' && c <= 'Z')
//first character is capital letter!
不使用正则表达式,这对于初学者来说可能很复杂。
代码放在哪里?可能在构造函数中检查它是否是大写字母,但你应该解释如果它是一个大写字母你需要做什么,如果不确定把它放在哪里怎么办。
使用此模式检查:
b[A-Z]
我不知道你的函数在获得匹配时到底应该做什么,所以我真的不能告诉你把它放在哪里。最明智的位置可能是在构造函数中。
使用String#matches(String regex)
的基于正则表达式的解决方案
在与以下类相同的类中创建一个新方法:
public boolean isValidDate() {
boolean valid = true;
if (!this.capitalName.matches("^[A-Z].*$"))
valid = false;
else if (!this.countryName.matches("^[A-Z].*$"))
valid = false;
return valid;
}
现在,在创建实例并填充对象后,您可以调用: isValidDate()
以了解数据是否有效。