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