如果字符串中的所有大字符,函数返回true 否则为假。
我有一个问题如何检查字符是否是大写字母。
行编译错误:
(str.charAt(n-1) != check)
错误:
The operator != is undefined for the argument type(s) char, boolean
代码:
public static boolean ifCharBig(String str,int n){
boolean check =Character.isUpperCase(str.charAt(n));
if (n == 0)
return true;
if (str.charAt(n-1) != check)
return false;
return ifCharBig(str, n - 1);
}
最佳答案
下面是我的做法:
public static boolean ifCharBig(String str){
return ifCharBig(str, str.length() - 1);
}
public static boolean ifCharBig(String str, int n){
if (n == -1)
return true;
return Character.isUpperCase(str.charAt(n)) && ifCharBig(str, n - 1);
}
System.out.println(ifCharBig("fOo"));
System.out.println(ifCharBig("fOO"));
System.out.println(ifCharBig("FOO"));
输出:
false
false
true
确实,您的代码中有 2 个问题:
- 您尝试将
char
与boolean
进行比较,它们是不兼容的基本类型。 - 如果
n
为0
,则方法退出,这是错误的,因为0
是有效索引,因此应将其视为正常情况。
关于java - 递归 - boolean 和大信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37712285/