4 回答
TA贡献1789条经验 获得超8个赞
您可以从长度迭代到 1 并打印每行中的子字符串:
public static void bingo(String s) {
for (int i = s.length(); i > 0; i--) {
System.out.println(s.substring(0, i));
}
}
输出(对于猫)
cat
ca
c
TA贡献1777条经验 获得超3个赞
你快明白了!
这就是可以用 来完成的方法while loop。
public static String bingo(String s) {
int index = s.length();
while (index != 0)
System.out.println(s.substring(0, index--));
return s;
}
这是如何完成的for loop
public static String bingo(String s) {
for (int i = s.length(); i != 0; i--)
System.out.println(s.substring(0, i));
return s;
}
TA贡献1853条经验 获得超18个赞
当然其他答案是正确的,但为什么不也以功能性的方式学习呢?
// you can use the tails everywhere you need (require Java 9+)
static Stream<String> tails(String xs) {
return Stream.iterate(xs, x -> !x.isEmpty(), x -> x.substring(0, x.length() - 1));
}
// usage example
public static void main(String[] args) {
tails("cat").forEach(System.out::println);
}
然而,这些参数是不言自明的(参见 javadoc iterate ):
.iterate( // iterate
xs, // using `xs` as seed
x -> !x.isEmpty(), // as long as the condition is true
x -> x.substring(0, x.length() - 1) // transform the current value
);
TA贡献2039条经验 获得超7个赞
public static String bingo(String s) {
int len = s.length();
for(int i = 0; i <s.length(); i++) {
System.out.println(s.substring(0,len-i));
}
return s;
}
添加回答
举报