【发布时间】:2015-01-01 04:52:04
【问题描述】:
我必须创建一个递归方法来在字母“A”或“a”之前显示给定字符串的所有子字符串,并在此过程中忽略该字母。终止条件工作正常。但是,在继续条件下,我抛出了 indexoutofbounds 错误,我不完全确定为什么。据我所知,我在索引达到字符串长度之前停止循环。但我会在这里发布,以防我错过了什么。
class Tree
{
void subStrings(String s)
{
if(s.length() == 1)
{
if(s.charAt(0) == 'A' || s.charAt(0) == 'a')
{
System.out.println("Cannot shorten substring.");
}
else
{
System.out.println(s);
}
}
else
{
String subString = "";
int i = 0;
while(s.charAt(i) != 'A' && i < s.length())//bad line
{
subString += s.charAt(i);
i++;
}
if(subString.equals(""))
subStrings(s.substring(i));
else
{
System.out.println(subString);
subStrings(s.substring(i));
}
}
}
int treeHeight(String tree)
{
return 0;
}
}
【问题讨论】:
-
所以您只是使用
A或a作为分隔符来拆分字符串?