gpt4 book ai didi

java - Java中递归删除字符

转载 作者:行者123 更新时间:2023-12-02 00:38:42 25 4
gpt4 key购买 nike

作为练习,下面的代码块旨在递归地遍历字符串并删除所有“x”字符。它确实做到了这一点,但我想跟踪 newStr 而不将其作为方法中的参数传递。有没有办法把它移到方法体中?

谢谢!

public static String deathToX(String str, String newStr) {  
//look for x char
if(str.substring(0, 1).equals("x")) {
//do nothing
} else {
//add non-x char to newStr
newStr += str.charAt(0);
}

if(str.length() == 1) {
return newStr;
}

return deathToX(str.substring(1), newStr);
}

public static void main(String[] args) {
System.out.println("Return: " + deathToX("xnoxmore", ""));
}

最佳答案

那么,您可以将代码更改为:

public static String deathToX(String str)
{
// Termination case
if (str.length() == 0)
{
return str;
}
// Work out whether or not we want the first character
String prefix = str.startsWith("x") ? "" : str.substring(0, 1);

// Let the recursive call handle the rest of the string, and return
// the prefix (empty string or the first character) followed by the
// x-stripped remainder.
return prefix + deathToX(str.substring(1));
}

你就是这么想的吗?

当然,这是一种极其低效的字符串操作方式,但我假设您对事物的递归性质更感兴趣。

关于java - Java中递归删除字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9152731/

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