2
public static void main (String Args[]) throws IOException{

    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    System.out.println("Enter String");
    String s = br.readLine();
    s=s+" ";
    s.toLowerCase();
    String word="";
    String max="";
    int count=0;

    for(int i=0; i<s.length();i++){
        char ch = s.charAt(i);
        while(ch!=' ')
            word+=ch;

        if(word.length()>max.length()){
            max=word; count++;
        }
        else count++;
    }System.out.println(max+" , "+count);
}
}

我想在不使用 split 或类似的东西的情况下找到字符串中的最大单词,并计算句子中有多少单词。当我输入任何内容并按 Enter 时,什么也没有发生。问题是什么?

4

4 回答 4

1

从控制台读取输入没有问题。

while(ch!=' ')
    word+=ch;

它使一个无限循环。你应该像这样更新这个while-loop-

while(ch!=' '){
   word+=ch;
   ch = s.charAt(++i);
}
于 2013-08-28T09:31:28.403 回答
0
public class LengthiestWord {

    public static void main (String Args[]) throws IOException{

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        System.out.println("Enter String");
        String s = br.readLine();
        s=s+" ";
        s.toLowerCase();
        String word="";
        String max="";
        int count=0;

        for(int i=0; i<s.length();i++){
            char ch = s.charAt(i);
            while(ch!=' '){
                 word+=ch;
                 ch = s.charAt(++i);
           }

            if(word.length()>max.length()){
                max=word;
                word="";
                count++;
            }
            else {
                count++;
                word="";
            }
        }
        System.out.println(max+" , "+count);
    }
}

输出 ---->>>>

输入字符串

所有错误都已修复

错误, 4

于 2013-08-28T11:13:33.147 回答
0

你在那里有一个无限循环

 while(ch!=' ')
            word+=ch;
于 2013-08-28T09:30:35.317 回答
0

伙计,它有效,readLine 中没有错误。

但我在以下位置看到一个无限循环:

while(ch!=' ')
        word+=ch;

请检查逻辑一次...

于 2013-08-28T09:34:27.067 回答