0

我对一个非常简单的字符串验证问题感兴趣,看看字符串中的起始字符是否以大写字母开头,然后让控制台显示真假。据我了解,您不必调用 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);
    }
}

问题在一定程度上得到了解决,因为控制台显示“是”或“否”,但尚未解决,因为我只想让控制台显示真或假。就是这样。建议?

4

4 回答 4

5

由于问题已经得到解答,我想指出 RegEx 没有必要解决这个问题(而且它们是昂贵的操作)。你可以像这样简单地做到这一点:

static boolean startsWithUpperCase(String toCheck)
{
    if(toCheck != null && !toCheck.isEmpty())
    {
        return Character.isUpperCase(toCheck.charAt(0));
    }
    return false;
}
于 2013-01-18T21:19:46.447 回答
4

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

调用checkStartChar方法将返回值,这并不意味着它将值打印到控制台。您需要编写您希望如何处理返回值的代码。如果你想打印返回值,那么你应该这样做:

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

将打印checkStartChar方法的返回值

于 2013-01-18T21:13:29.163 回答
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
于 2013-01-18T21:13:33.140 回答
0

In your code checkStartChar(str); is returning a boolean value which is not being used in your program.Then if you want to display true or false then you can use. System.out.println(checkStartChar(str));

于 2013-01-19T17:04:07.197 回答