【发布时间】:2013-02-10 23:43:03
【问题描述】:
我正在尝试使用递归方法将字符串更改为 char 数组,但出现错误
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -1
at java.lang.String.substring(Unknown Source)
我只想使用递归方法(不是循环或 toChar 方法)来解决这个问题
public class Recur {
public char[] stringTochar(String str)
{
if (str != null && str.length() > 0)
{
System.out.println(str.charAt(0)) ;
stringTochar(str.substring(1));
}
return stringTochar(str.substring(1)) ;
}
}
public class Tester {
public static void main(String[] args) {
Recur recur= new Recur ();
recur.stringTochar("this is a test");
}
}
【问题讨论】:
-
你为什么要重新发明
String#toCharArray,尤其是为什么要使用recursion重新发明它? -
@T.J.Crowder 学习目的。
-
您的基本情况也调用递归函数而不是停止。
-
@buni:这个问题特别不适合用递归来解决。如果您想了解递归,我建议您执行不同的任务,例如(比如说)遍历树结构。问题在于递归任务必须逐步建立其结果,这对于
char[]返回类型很难做到。
标签: java