【发布时间】:2020-05-22 16:47:49
【问题描述】:
我想使用递归方法从字符串中删除每个第二个字符。
public static void main(String[] args) {
System.out.println(everySecond("wonderful"));
}
public static String everySecond(String s) {
if (s.length() % 2 != 0 ) {
System.out.print(s.substring(0,1));
}
if (s.length() <= 1) {
return s;
}
else {
String simpler = everySecond(s.substring(1))+ s.charAt(0);
return "";
}
}
}
目前该程序可以满足我的需要。
但是,我想在子递归调用String simpler = everySecond(s.substring(1))+ s.charAt(0); return ""; 中包含所有内容并删除下面的代码。
if (s.length() % 2 != 0 ) {
System.out.print(s.substring(0,1));
}
我对 Java 还很陌生,所以如果答案很明显,我深表歉意。我假设我在这里忽略了一些非常基本的解决方案。
【问题讨论】:
-
如果你的单词中包含偶数个字母会怎样?
-
@brso05 如果是偶数,有两种选择:跳过最后一个字母或包含它。如果你跳过它,那么我下面的实现仍然有效,如果你想保留它,只需将
str.length() < 2更改为<= 2。