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.而已.建议吗?
由于这个问题已经得到解答,我想指出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)