java - 使用递归返回字符串的反转?

标签 java recursion

<分区>

我正在尝试使用递归返回字符串的反转,但出现了一些错误。我是递归的新手,所以我真的不知道从哪里开始。我得到的错误是:

Exception in thread "main" java.lang.NullPointerException 

at java.lang.String.concat(String.java:2027)

at Recursion.reverseString(Recursion.java:30)

at Recursion.reverseString(Recursion.java:30)

at Recursion.reverseString(Recursion.java:30)

at Recursion.reverseString(Recursion.java:30)

at Recursion.reverseString(Recursion.java:30)

at Recursion.main(Recursion.java:46)

这是我的代码:

    public static String reverseString (String inString) {
        String result = "";

        if (inString.length() > 0) { 
            // if the string is empty 
            result = inString.charAt(inString.length()-1) + "";
            result.concat(reverseString(inString.substring(0, inString.length()-1)));           
            return result;
        } else {
            return null;        
        }
    }


    // the testers      

    public static void main(String[] args){
        String inString = "abcde";

        // test the reverseString 
        String revString = reverseString(inString);
        System.out.println(revString);
    }
}

最佳答案

异常堆栈跟踪告诉您 null 正在传递给 concat() 方法。 concat() 的参数是您的 reverseString() 方法,该方法在字符串为空时返回 null。您可以返回一个空字符串来避免 NullPointerException,而不是返回 null。替换行:

return null;

return "";

关于java - 使用递归返回字符串的反转?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40390120/

相关文章:

java - 如何创建一个简单的 OSGI 模块

java - 如何使用指数表示法将 double 转换为 n 字符的字符串?

java - Java 中的递归冒泡排序

python - 埃拉托色尼递归筛不返回任何内容

java - 如何引用不同目录子结构中的文件/目录?

java - RMI-REGISTRY 的 RMI 位置

Java 3D - 边界球体

java - 自定义内置的 WorkbenchAction

python - 递归计算斐波那契数列的计算效率最高的方法是什么?

C:链表的递归排序