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條經驗 獲得超8個贊
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;
}
添加回答
舉報