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

时间:2013-10-20 16:31:06

标签: java regex expression capitalization

我如何检查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;
    }

}

3 个答案:

答案 0 :(得分:0)

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

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

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

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

答案 1 :(得分:0)

使用此模式检查:

\b[A-Z]

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

答案 2 :(得分: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()来了解数据是否有效。