-3

我想要一个程序,它接受一个字符串,在一个空格处分割它,并打印最小子字符串的长度。

我写了这个,但它只打印第一个字符串的长度。我的问题是什么?

Scanner input = new Scanner(System.in);
        String inp = input.nextLine();
        int counter = 0;
        String[]helper =new String[inp.length()];
        int minlength = Integer.MAX_VALUE;
        for (int i = 0; i < inp.length(); i++) 
        {
            if (inp.charAt(i) != ' ')
            {
                counter++;
                continue;
            }
            minlength = Math.min(counter, minlength);
            counter = 0;
        }
        System.out.println(minlength);
4

1 回答 1

0

利用 。split用空格分割字符串的方法。

String[] stringArray = input.split("\\s+");

通常你可以这样做:

String[] stringArray = input.split(" ");

但是这个来源解释了为什么第一个选项更好: 如何使用任何空白字符作为分隔符拆分字符串?

一旦你有了String[] stringArray,你就可以遍历它并找到最小的长度。

int minlength = Integer.MAX_VALUE;
for(int i = 0; i < stringArray.length; i++){
    if(stringArray[i].length() < minlength){
        minlength = stringArray[i].length();
    }
}
System.out.println(minlength);
于 2013-10-22T17:47:45.017 回答