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

时间:2013-01-18 21:11:35

标签: java string printing 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);
    }
}

但是当我运行它时,没有任何显示。如果我在返回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);
    }
}

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

4 个答案:

答案 0 :(得分:5)

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

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

答案 1 :(得分:4)

  

尚未解决,因为我只想让控制台显示真或假

调用checkStartChar方法将返回值,这并不意味着它会将值打印到控制台。您需要编写处理返回值的方式。如果要打印返回值,则应执行以下操作:

System.out.println(checkStartChar(str));

将打印checkStartChar方法

的返回内容

答案 2 :(得分:1)

if(s.startsWith("[A-Z]")){

String.startsWith(prefix)不会将正则表达式作为参数,您应该使用正则表达式APi。

Pattern p = Pattern.compile("[A-Z]");
Matcher m = p.matcher(new Character(s.charAt(0)).toString());
if(m.find()){
            return true;
}else{
    return false;
}
String str = "AbCD";
System.out.println(checkStartChar(str));

输出:

  true

答案 3 :(得分:0)

在你的代码中checkStartChar(str);返回一个未在程序中使用的布尔值。然后,如果要显示true或false,则可以使用。     的System.out.println(checkStartChar(STR));