Java 我试图打印字符串中最长的单词,只是单词本身。如果有相等的单词,则打印第一个单词。我在哪里搞砸了?
我的输出只是打印整个字符串,而不是实际的单词。 我似乎找不到我的错误Java 我试图打印字符串中最长的单词,只是单词本身。如果有相等的单词,则打印第一个单词。我在哪里搞砸了?,java,string,Java,String,我的输出只是打印整个字符串,而不是实际的单词。 我似乎找不到我的错误 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
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);
}
}
你在读台词,比较它们的长度。你不能把单词考虑在内。 一种简单的方法是取一行并按一个或多个空格将其拆分为位,如
line.split(\\s+)
。那是你的话
while ((line = in.readLine()) != null) {
for (String word : line.split("\\s+")) {
if (word.length() > max) {
max = word.length();
longString = word;
}
}
}