我的输出只是打印整个字符串,而不是实际的单词。 我似乎找不到我的错误。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
public class Main {
public static void main(String[] args) throws IOException {
InputStreamReader reader = new InputStreamReader(System.in, StandardCharsets.UTF_8);
BufferedReader in = new BufferedReader(reader);
String line = "";
String longString = "";
int max=0;
while ((line = in.readLine()) != null) {
if(line.length()>max){
max=line.length();
longString=line;
}
}
System.out.println(longString);
}
}
答案 0 :(得分:0)
您正在阅读线并比较它们的长度。您不会在一行中考虑单词。
一种简单的方法是采用一条线并将其分成一个或多个空格,如line.split("\\s+")
中所述。那是你的话。
while ((line = in.readLine()) != null) {
for (String word : line.split("\\s+")) {
if (word.length() > max) {
max = word.length();
longString = word;
}
}
}