Java 中的正则表达式 - 检查实例变量以大写字母开头



如何检查 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() 以了解数据是否有效。

最新更新