目前我正在尝试读取字符串的文本文件并将它们放入每行的数组中。文本文件有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()方法从文本中提取特定单词。
非常感谢任何帮助
谢谢
答案 0 :(得分:0)
有更好的方法来读取文件,而不是使用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;
如果您想发布数据样本,我们会帮您弄清楚您是否也正确地对每一行进行了标记。
答案 1 :(得分:0)
我认为你的问题就在这里
while(scanner.hasNextDouble()){
salesData.add(scanner.nextDouble()+""); // you wrote scanner.toString()
}
答案 2 :(得分:0)
以这种方式行事
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();
答案 3 :(得分:0)
如果您使用java8,您可以这样做:
Files.lines(Paths.get("EntityTagged.txt")).toArray(String[]::new);
java.nio.file.Files是一个用于处理文件的实用程序类,它在java8 lines
中有一个新方法,此方法返回一个字符串流,然后将此流转换为字符串数组使用方法toArray,方法引用String []