gpt4 book ai didi

java - 递归字符串解析器

转载 作者:行者123 更新时间:2023-12-01 12:59:55 25 4
gpt4 key购买 nike

我需要创建一个程序,将字符串递归地解析为更小的子字符串。每个子串都比前一个子串短一个字母;一旦到达末尾,它将重新显示该单词,但第一个字母被切掉,然后是它的子字符串。

例如:给定单词“Slugger”,程序将显示

Slugger
Slugge
Slugg
Slug
Slu
Sl
S
lugger
lugge
lugg
lug
lu
l

如此不断。

到目前为止,这是我的代码的一部分,应该将事情分解:

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

我想我已经拥有了我需要的所有部件,但也许只是没有按照正确的顺序来完成我想要的事情。

非常感谢任何帮助。谢谢!

最佳答案

我在您的代码中添加了以下内容。看看这是否有效

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;
}

}

关于java - 递归字符串解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23588618/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com