Java 读整行而不是最长的单词

Java 读整行而不是最长的单词,java,java.util.scanner,tokenize,Java,Java.util.scanner,Tokenize,我正在编写一个程序,该程序读取文本文件并打印行数、最长行数、每行上的令牌数以及每行上最长令牌的长度 我在阅读最长单词时遇到问题,我的程序给我的是每行的字母数,而不是最长单词的字母数 文本文件内容: 预期产出: 实际产量: 代码: 如果“代币”不是一封信,这将为您提供: public static void main(final String... args) throws IOException { String fileName; System.out.printf(

我正在编写一个程序,该程序读取文本文件并打印行数、最长行数、每行上的令牌数以及每行上最长令牌的长度

我在阅读最长单词时遇到问题,我的程序给我的是每行的字母数,而不是最长单词的字母数

文本文件内容: 预期产出: 实际产量: 代码: 如果“代币”不是一封信,这将为您提供:

public static void main(final String... args)
    throws IOException
{
    String fileName;

    System.out.printf("Please enter the name of a file\n");

    try (
        final Scanner scanner = new Scanner(System.in);
    ) {
        fileName = scanner.nextLine();
    }

    // If we reached this point, good; .nextLine() only fails with unchecked
    // exceptions, so if it failed we won't be here. And the scanner will be closed.

    final Path path = Paths.get(fileName);
    int lineCount = 0;

    for (final String line: Files.readAllLines(path, StandardCharsets.UTF_8)) {
        lineCount++;
        analyzeLine(line);
    }
    System.out.printf("TOTAL: %d lines\n", lineCount);
}

private static void analyzeLine(final String line)
{
    final String[] tokens = line.split("\\W+");
    int largestToken = 0;
    for (final String token: tokens)
        if (token.length() > largestToken)
            largestToken = token.length();

    System.out.printf("This line: %d tokens, largest token has length %d\n",
        token.length, largestToken);
}
这是:

     import java.io.*;
     import java.util.*;

class InputStats
{
static String lines="";
static String bigestline="";
public static void main (String [] args )
throws FileNotFoundException
    {
   Scanner console = new Scanner ( System.in);
   System.out.println(" ");
   System.out.println();
   System.out.println("Please enter  a name of a file " );
   String name = console.nextLine();
   Scanner input = new Scanner ( new File (name));
   while (input.hasNextLine()) {
   String line = input.nextLine();
   inputStats(new Scanner(line));
 }
  String[] line=lines.split(":");
  bigestline=line[0];
 for(int j=0;j<line.length-1;j++)
 {
 if(bigestline.length()<line[j+1].length())
 {      
    bigestline=line[j+1];
 }
}

System.out.print("\n Biggest Line in File="+bigestline+"\n");

} //end of amin
    public static void inputStats (Scanner input)
    throws FileNotFoundException{
        int numLines=0;
        int numwords=0;
        String maxLine = "";

        while (input.hasNextLine())
            {
            String next = input.nextLine();
            System.out.print("\n"+next);
            lines=lines+":"+next;
            numwords += next.split("\\s+").length;
            numLines++;

         if (next.length() > maxLine.length()) {
       maxLine = next;
       }
      }

        System.out.print("\nLine " + numLines + " has ");
        System.out.print(numwords + "tokens " );
        System.out.print("(longest = " + maxLine.length()+ ")");
        System.out.println();
        }
    }
import java.io.*;
导入java.util.*;
类InputStats
{
静态字符串行=”;
静态字符串bigestline=“”;
公共静态void main(字符串[]args)
抛出FileNotFoundException
{
扫描仪控制台=新扫描仪(System.in);
System.out.println(“”);
System.out.println();
System.out.println(“请输入文件名”);
字符串名称=console.nextLine();
扫描仪输入=新扫描仪(新文件(名称));
while(input.hasNextLine()){
String line=input.nextLine();
inputStats(新扫描仪(线));
}
字符串[]行=行。拆分(“:”);
最大直线=直线[0];

对于(int j=0;jj)这里的“标记”是什么?一个单词?任何被空格分割的东西?其他?是的,标记是一个单词!
Line 1 has 5 tokens (longest = 31)
Line 1 has 8 tokens (longest = 42)
Line 1 has 6 tokens (longest = 32)
Line 1 has 3 tokens (longest = 27)
import java.io.*;
import java.util.*;

public class InputStats{
    public static void main (String [] args )
    throws FileNotFoundException{

Scanner console = new Scanner ( System.in);
System.out.println(" ");
System.out.println();
System.out.println("Please enter  a name of a file " );
String name = console.nextLine();
Scanner input = new Scanner ( new File (name));
while (input.hasNextLine()) {
    String line = input.nextLine();
    inputStats(new Scanner(line));
}



        }//end of amin
        public static void inputStats (Scanner input)
        throws FileNotFoundException{
            int numLines=0;
            int numwords=0;
            String maxLine = "";


            while (input.hasNextLine()){
                String next = input.nextLine();
                numwords += next.split("\\s+").length;
                numLines++;

 if (next.length() > maxLine.length()) {
maxLine = next;
}
}//end of while


System.out.print("Line " + numLines + " has ");
System.out.print(numwords + "tokens " );
System.out.print("(longest = " + maxLine.length()+ ")");
System.out.println();




            }//end of method

        }// end of class
public static void main(final String... args)
    throws IOException
{
    String fileName;

    System.out.printf("Please enter the name of a file\n");

    try (
        final Scanner scanner = new Scanner(System.in);
    ) {
        fileName = scanner.nextLine();
    }

    // If we reached this point, good; .nextLine() only fails with unchecked
    // exceptions, so if it failed we won't be here. And the scanner will be closed.

    final Path path = Paths.get(fileName);
    int lineCount = 0;

    for (final String line: Files.readAllLines(path, StandardCharsets.UTF_8)) {
        lineCount++;
        analyzeLine(line);
    }
    System.out.printf("TOTAL: %d lines\n", lineCount);
}

private static void analyzeLine(final String line)
{
    final String[] tokens = line.split("\\W+");
    int largestToken = 0;
    for (final String token: tokens)
        if (token.length() > largestToken)
            largestToken = token.length();

    System.out.printf("This line: %d tokens, largest token has length %d\n",
        token.length, largestToken);
}
     import java.io.*;
     import java.util.*;

class InputStats
{
static String lines="";
static String bigestline="";
public static void main (String [] args )
throws FileNotFoundException
    {
   Scanner console = new Scanner ( System.in);
   System.out.println(" ");
   System.out.println();
   System.out.println("Please enter  a name of a file " );
   String name = console.nextLine();
   Scanner input = new Scanner ( new File (name));
   while (input.hasNextLine()) {
   String line = input.nextLine();
   inputStats(new Scanner(line));
 }
  String[] line=lines.split(":");
  bigestline=line[0];
 for(int j=0;j<line.length-1;j++)
 {
 if(bigestline.length()<line[j+1].length())
 {      
    bigestline=line[j+1];
 }
}

System.out.print("\n Biggest Line in File="+bigestline+"\n");

} //end of amin
    public static void inputStats (Scanner input)
    throws FileNotFoundException{
        int numLines=0;
        int numwords=0;
        String maxLine = "";

        while (input.hasNextLine())
            {
            String next = input.nextLine();
            System.out.print("\n"+next);
            lines=lines+":"+next;
            numwords += next.split("\\s+").length;
            numLines++;

         if (next.length() > maxLine.length()) {
       maxLine = next;
       }
      }

        System.out.print("\nLine " + numLines + " has ");
        System.out.print(numwords + "tokens " );
        System.out.print("(longest = " + maxLine.length()+ ")");
        System.out.println();
        }
    }