繁体   English   中英

将文本文件中的字符串存储到包含不同行的数组中

[英]Storing Strings from a Text File into an array including different lines

目前,我正在尝试读取字符串的文本文件,并将其放入每行的数组中。 文本文件有10行,每行有一个字符串(从网站中提取的句子)。 我的目标是将这些字符串存储到数组(每行一个数组)中。

这是我现在使用的代码封装数组。

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

        Scanner DataFile = new Scanner(new File("EntityTagged.txt"));

        while(DataFile.hasNextLine()){
            String line = DataFile.nextLine();

            ArrayList<String> salesData = new ArrayList<String>();

            Scanner scanner = new Scanner(line);
            scanner.useDelimiter(",");
            while(scanner.hasNextDouble()){
                salesData.add(scanner.toString());
            }
            scanner.close();

            System.out.println(salesData);
        }

        DataFile.close();

    }
}

该代码读取“ EntityTagged.txt”文件,该文件中包含10个不同的句子,并希望将它们存储在数组中。 此刻,执行后返回空数组

[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]

我的目标是将句子存储在这些数组中,然后使用“ endsWith()方法”从文本中提取特定单词。

任何帮助都感激不尽

谢谢

与在1.7中添加java.nio的扫描器相比,有更好的方法来读取文件

就解析每一行而言,如果您确定已用逗号将双精度分隔开,那就是您要创建的内容,然后继续尝试。

这个成语应该为您工作:

   Path file = Paths.get("EntityTagged.txt");
    List<String> fileContents = new LinkedList<>();
    try (BufferedReader reader = Files.newBufferedReader(file, Charset.defaultCharset()))
    {
        String line;
        while ((line = reader.readLine()) != null)
        {
            fileContents.add(line);
        }
    }
    return fileContents;

如果要发布数据样本,我将帮助您确定是否正确标记了每一行。

我想你的问题在这里

while(scanner.hasNextDouble()){
    salesData.add(scanner.nextDouble()+""); // you wrote scanner.toString()
}

用这种方式做

Scanner DataFile = new Scanner(new File("EntityTagged.txt"));

ArrayList<String> salesData = new ArrayList<String>();
while (DataFile.hasNextLine()) {
    String line = DataFile.nextLine();

    salesData.add(line);
}

for (String str : salesData) {
    System.out.println(str);
}

DataFile.close();

如果使用java8,则可以这样进行:

Files.lines(Paths.get("EntityTagged.txt")).toArray(String[]::new);

java.nio.file.Files是用于处理文件的实用程序类,它在java8 lines有一个新方法,该方法返回字符串流,然后使用toArray方法和该方法将该字符串流转换为字符串数组引用String []的“构造函数”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM