0

如何检查 countryName 和 capitalName 实例变量是否都以大写字母开头?我确定我必须使用涉及诸如“^ [AZ]”之类的正则表达式,但不确定如何或在何处放置完整代码。我是 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;
    }

}
4

3 回答 3

0

根据您的需要使用基于正则表达式的解决方案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()以了解数据是否有效。

于 2013-10-20T17:52:26.477 回答
0

最简单的方法是使用以下代码

char c = countryName.charAt(0);
if (c >= 'A' && c <= 'Z')
     //first character is capital letter!

不使用正则表达式,这对于初学者来说可能很复杂。

把代码放在哪里?可能在构造函数中检查它是否是大写字母,但你应该解释如果它是大写字母你需要做什么,如果不确定放在哪里。

于 2013-10-20T16:47:02.353 回答
0

使用此模式检查:

\b[A-Z]

我不知道你的函数在匹配时应该做什么,所以我真的不能告诉你把它放在哪里。最明智的地方可能是在构造函数中。

于 2013-10-20T17:06:17.177 回答