0

但是,我也打印出单词的所有子字符串;我无法获得最后的输出。

import java.util.Scanner;

public class printer {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.println("Enter a word");
        String s = scan.nextLine();
        int i;
        int j;
        for (i=1; i<s.length(); i++) {
            for (j=0; j+i<=s.length(); j++) {
                String ss = s.substring(j, j+i);
                System.out.println(ss);
        } }
    }
}

输入

thunder

输出

t
h
u
n
d
e
r
th
hu
un
nd
de
er
thu
hun
und
nde
der
thun
hund
unde
nder
thunde
hunder
(missing thunder)

当然我只是放了一个 System.out.println(s); 最后,但我希望它以 for 循环结束

4

4 回答 4

8

将您的外部 for 循环条件更改为i<=s.length

于 2013-04-05T04:14:01.393 回答
6

for将您的第一个循环中的检查更改为i:-

for (i = 1; i <= s.length(); i++) // "i" should be less than or equal to the length of "s"
于 2013-04-05T04:14:27.023 回答
1

您需要获取 i=s.length(); 的值

只需将外循环设为for(i=1; i<=s.length(); i++)

于 2013-04-05T04:16:31.560 回答
0

作出修正

for (i=1; i<s.length(); i++)

to 
for (i=1; i<=s.length(); i++)
于 2013-04-05T04:17:47.300 回答