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或类似的东西,并且还要计算句子中有多少单词。 当我输入任何东西并按回车时没有任何反应。有什么问题?
答案 0 :(得分:1)
从控制台读取输入没有问题。
while(ch!=' ')
word+=ch;
它会产生无限循环。你应该更新这个while-loop
-
while(ch!=' '){
word+=ch;
ch = s.charAt(++i);
}
答案 1 :(得分:0)
你有一个无限循环
while(ch!=' ')
word+=ch;
答案 2 :(得分:0)
Man,它有效,readLine中没有错误。
但是我看到了无限循环:
while(ch!=' ')
word+=ch;
请检查逻辑一次......
答案 3 :(得分: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);
}
}
O / P ----&gt;&gt;&gt;&gt;
输入字符串
所有错误都已修复
错误,4