Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我试图打印字符串中最长的单词,只是单词本身。如果有相等的单词,则打印第一个单词。我在哪里搞砸了?_Java_String - Fatal编程技术网

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;
    }
  }
}