java - 递归 - boolean 和大信号

标签 java recursion

如果字符串中的所有大字符,函数返回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 个问题:

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

关于java - 递归 - boolean 和大信号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37712285/

相关文章:

python - 如何让这段代码更有效地处理大输入?

java - 运行DLL中声明的方法的代码

java - 不同区域的日期/时间问题

Java ArrayList 的递归合并排序

python - 在 Python 中对无限循环使用无限递归是一种罪过吗?

c - 最大和连续子数组使用递归直接输出结果

ruby - 当我传入数组时,为什么我的串联会困惑?

java - 如何使用ServletMultipartRequest获取请求参数

java - Spark FlatMap - scala 到 java 代码

java - 如何使用 Mockito 模拟带有自定义注释的类?