我希望有一个程序,它接受一个字符串,在空格处分割它,并打印最小子字符串的长度。
我写了这个,但它只打印第一个字符串的长度。我的问题是什么?
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);
答案 0 :(得分:0)
使用。split
方法按空格分割字符串。
String[] stringArray = input.split("\\s+");
通常你可以这样做:
String[] stringArray = input.split(" ");
但是这个消息来源解释了为什么第一个选项更好:How do I split a string with any whitespace chars as delimiters?
获得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);