【发布时间】:2016-02-02 20:05:54
【问题描述】:
我使用递归来删除文本中不必要的字符。
前: source ="这是演示 java 删除字符串"
regex ="这,是,java"
result ="demo 删除字符串"
当程序停止递归函数时,我很难不提供条件。如果有任何方法可以更有效地使用递归,请告诉我
public class NewClass2 {
static String regexs[] = {"This","is", "java"};
private static String getRecursive(String source, int level) {
String content = "";
if (level > regexs.length - 1) {
return "";
}
level++;
for (String regex : regexs) {
content = source.replaceAll(regex, "");
if (!content.equals("")) {
content = getRecursive(content, level);
}
}
return content;
}
public static void main(String[] args) {
String result = getRecursive("This is demo java remove string", 0);
System.out.println(result);
}
}
【问题讨论】:
-
一定要用递归吗?
-
在这个设置中,你真的不需要递归。您可以在 for 循环中轻松完成
-
你要么使用for循环,要么使用递归函数,你不需要booth,不需要第二个IF语句,你在函数的开头有一个(janos回答)
-
非常感谢大家的建议和声明,他们工作得很好,我学到了很多
-
@janos 我认为想要执行可以只使用递归,我不知道还有其他可能的实现方法。所以很高兴我能看到你的方法
标签: java arrays string recursion