Java 列表的数组?

Java 列表的数组?,java,Java,我有这个代码,其中我有一个扫描文本文件中每个句子的列表,它会打印以结尾的句子;我想知道我是否可以在每个句子中对每个单词做另一个数组,这样我就可以扫描单词而不是句子了 import java.io.*; import java.util.*; public class Main { public static void main(String args[]) throws IOException { Scanner sf = new Scanner(new File("a

我有这个代码,其中我有一个扫描文本文件中每个句子的列表,它会打印以结尾的句子;我想知道我是否可以在每个句子中对每个单词做另一个数组,这样我就可以扫描单词而不是句子了

import java.io.*;
import java.util.*;
public class Main 
{
    public static void main(String args[]) throws IOException {
        Scanner sf = new Scanner(new File("amazing.txt")); 
        List<String> text = new ArrayList<>();

        while (sf.hasNextLine()) 
        {
            String current = sf.nextLine(); 
            if (current.endsWith(",") || current.endsWith(";") || current.endsWith("!"))
                System.out.println(current);
        }
        sf.close(); 
    }
}
import java.io.*;
导入java.util.*;
公共班机
{
公共静态void main(字符串args[])引发IOException{
Scanner sf=新扫描仪(新文件(“惊人的.txt”);
列表文本=新的ArrayList();
while(sf.hasNextLine())
{
字符串电流=sf.nextLine();
if(current.endsWith(“,”)| current.endsWith(“;”)| current.endsWith(“!”)
系统输出打印项次(当前);
}
sf.close();
}
}

通常我们不使用
扫描器
对象来读取文件,因为它不是
最佳实践
请查看@Zabuzard指出的这一点

解决方案:

Scanner sf=新的扫描仪(新文件(“惊人的.txt”);
Listtext=newarraylist<>();
while(sf.hasNextLine()){
字符串电流=sf.nextLine();
//if(current.endsWith(“,”)| current.endsWith(“;”)| current.endsWith(“!”)
//系统输出打印项次(当前);
字符串所有_单词[];
all_words=current.split(“”;//创建一个数组,其中所有字符串用每行空格分隔
System.out.print(“行中的所有字:”);
for(int i=0;i
这将打印每行的所有单词。您可以继续在案例场景中实现登录,并
修剪
字符串以删除特殊字符


然后,您可以将其添加到
列表中

是的,可以
将字符串拆分为单词数组。您的代码似乎根本不涉及数组。也许你的意思是列表?“我有一系列的句子”不,你没有。每行都有一个
列表
。你没有数组,一行文本和一个句子不一样。此外,你没有任何东西,因为你从不在
文本中添加任何内容,因为他每次都试图
打印出
,所以如果他设法得到一个没有特殊字符的单词,他会将其添加到
列表中
,尽管我同意你的观点,标题和问题都必须编辑。如果你想推荐一种现代的文件读取方式,那么就推广NIO(自Java8以来)
BufferedReader
也过时了(对于许多任务)。@Zabuzard不知道,非常感谢您的评论,我会继续编辑它!谢谢