gpt4 book ai didi

java - 如何在没有任何 for 循环的情况下递归地解压缩字符串?

转载 作者:行者123 更新时间:2023-12-01 12:09:21 24 4
gpt4 key购买 nike

对于我的作业,我必须能够在没有 for 循环的情况下递归地解压缩字符串。我在尝试限制自己使用 for 循环时遇到了一些麻烦,如果我能得到一些帮助,我将不胜感激。最后,我有一个 for 循环,我想知道是否有一种方法可以用其他东西删除它,并且仍然让我的程序做我打算做的事情

public class StringRec {
public static void main(String[] args) {
System.out.println("What text do you want to decompress?");
String compressedText = IO.readString();
System.out.println(decompress(compressedText));
}
public static String decompress(String compressedText) {
if (compressedText.length()<=1){
return compressedText;
}
String first="";
String rest="";
char c = compressedText.charAt(0);
if (Character.isLetter(c) == true) {
first = compressedText.substring(0,1);
rest = compressedText.substring(1);
return first + decompress(rest);
} else {
first = compressedText.substring(1,2);
rest = compressedText.substring(2);
int x = compressedText.charAt(0)-'0';
char y = compressedText.charAt(1);
String tst = "";

for(int i = 0; i < x; i++) {
tst = tst+y;
}

return tst + decompress(rest);
}
}
}

最佳答案

使用 while 循环来做同样的事情。

int i = 0;
while(i < x) {
i++;
tst += y;
}

如果你不能完全使用循环,那么就使用递归。

int i = 0;

public String recursiveAppend(String tst) {
if(i >= x) {
i = 0;
return tst;
}
else return recursiveAppend(tst + y);
}

如果您使用的是 > Java 1.5,则使用 String tst = new String(new char[x]).replace('\0', y);。 (来自here)

关于java - 如何在没有任何 for 循环的情况下递归地解压缩字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27348711/

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