递归 - 布尔和大信号

时间:2016-06-08 20:27:30

标签: java recursion

如果字符串中包含所有大字符,则该函数返回true 否则是假的。

我有一个问题,如何检查字符是否是大写字母。

编译错误:

(str.charAt(n-1) != check)

the eror:

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);
}

1 个答案:

答案 0 :(得分:4)

我将如何做到这一点:

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个问题:

  1. 您尝试将charboolean进行比较,这些基本类型不兼容。
  2. 如果n0,那么您的方法会退出,这是一个错误,因为0是一个有效的索引,因此应将其视为正常情况。