我需要创建一个程序,以递归方式将字符串解析为较小的子字符串。每个子字符串都比前一个短一个字母;一旦它结束,它将重新显示该单词,但第一个字母被切掉,然后是它的子串。
例如:给定“Slugger”这个词,程序会显示
棒球
Slugge
Slugg
弹头
SLU
SL
小号
单桅
lugge
Lugg填入
耳
鲁
升
不断。
到目前为止,这是我的代码的一部分,应该会解决问题:
private static void stringParser(String str)
{
if(str.length() < 1)
{
return;
}
else if(str.length() == 0)
{
removeFirstChar(str, 1);
}
else
{
System.out.println(str);
stringParser(str.substring(0, str.length() - 1));
}
} // End stringParser method
private static void removeFirstChar(String str, int i)
{
String strNew = str.substring(i);
stringParser(strNew);
return strNew;
} // End removeFirstChar method
我想我已经拥有了我需要的所有部件和部件,但也许只是没有按照正确的顺序来完成我想要的工作。
非常感谢任何帮助。 谢谢!
答案 0 :(得分:1)
我在您的代码中添加了以下内容。看看是否有效
public static void main(String[] args) {
String str = "slugger";
for(int i=0;i<str.length();i++) {
stringParser(str.substring(i));
}
}
完整代码.....
public class Test {
public static void main(String[] args) {
String str = "slugger";
for(int i=0;i<str.length();i++) {
stringParser(str.substring(i));
}
}
private static void stringParser(String str)
{
if(str.length() < 1)
{
return;
}
else if(str.length() == 0)
{
removeFirstChar(str, 1);
}
else
{
System.out.println(str);
stringParser(str.substring(0, str.length() - 1));
}
} // End stringParser method
private static void removeFirstChar(String str, int i)
{
String strNew = str.substring(i);
stringParser(strNew);
str = strNew;
}
}