這是我編寫的用於查找字符串中最小單詞的代碼,但每當我嘗試在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