Bool vals不会在控制台打印出来

Oce*_*tXL 0 java printing string console boolean

我感兴趣的是一个非常简单的字符串验证问题,看看字符串中的起始字符是否以大写字母开头,然后让控制台显示true或false.根据我的理解,你不必调用类似System.console().printf("true",s)的东西来实现这一点.我可以发誓我已经看到使用以下示例代码实现了类似的基本实现:

public class Verify {
    public static boolean checkStartChar(String s) {
        if (s.startsWith("[A-Z]")) {
            return true;
        } else {
            return false;
        }
    }

    public static void main(String[] args) {
        String str = "abCD";
        checkStartChar(str);
    }
}
Run Code Online (Sandbox Code Playgroud)

但是当我运行它时,没有任何显示.如果我在返回T/F之前添加条件打印输出稍作修改,例如

public class Verify2 {
    public static boolean checkStartChar(String s) {
        if (s.startsWith("[A-Z]")) {
            System.out.println("yep");
            return true;
        }
        else {
            System.out.println("nope");
            return false;
        }
    }

    public static void main(String[] args) {
        String str = "abCD";
        checkStartChar(str);
    }
}
Run Code Online (Sandbox Code Playgroud)

问题有所解决,因为控制台显示"yep"或"nope",但尚未解决,因为我只想让控制台显示true或false.而已.建议吗?

MrL*_*ore 5

由于这个问题已经得到解答,我想指出RegExes不需要解决这个问题(而且它们是昂贵的操作).你可以这样做:

static boolean startsWithUpperCase(String toCheck)
{
    if(toCheck != null && !toCheck.isEmpty())
    {
        return Character.isUpperCase(toCheck.charAt(0));
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)