这是我编写的用于查找字符串中最小单词的代码,但每当我尝试在eclipse中运行它时,它都会显示一个(字符串索引超出范围-2147483648)嵌套while语句错误,我已标记,我不明白它的原因,因为我的程序似乎在范围内运行良好,即小于输入字符串的长度。在java中查找字符串中的最小单词
在此先感谢!
import java.util.Scanner;
public class Minword {
public static String minLengthWord(String input){
// Write your code here
int count[]=new int[50],i,j=0,len=input.length();
String output = "";
for(i=0;i<len;i++)
{
if(input.charAt(i)!=' ')
{
count[j]++;
}
else
j++;
}
int minidx=0;
for(i=1;i<j;i++)
{
if(count[minidx]>count[i])
minidx=i;
}
int words=0;
i=0;
while(words<=minidx)
{
if(words==minidx)
{
***while(i<len && input.charAt(i)!=' ')***
{
output+=input.charAt(i);
i++;
}
}
else if(i<len && input.charAt(i)==' ')
words++;
i++;
}
return output;
}
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
String input,output;
input=s.nextLine();
output=minLengthWord(input);
}
}
你的外'while'环路无限的,因为在某些条件下'单词'不会增加。 –
你的外部while循环总是为真,我增加直到达到最大整数值。详细请参阅我的答案 – haifzhan