如何将单词行转换为单个数组

时间:2016-12-20 01:04:42

标签: java parsing

例如,我想转此列表:

  狗猫

     树木微风

     

...

其中有一定数量的行,每行包含两个单词。

如何使用BufferedReader执行此操作?问题是我不知道如何在没有for循环的情况下继续解析x次。我如何使用for循环?

以下是示例代码:

BufferedReader br = new BufferedReader(new FileReader("input.in"));
PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter("input.out")));
static int[] words
for (int i=1; i<2N; i+2) {
    StringTokenizer i 
        words[i] = String.parsestring}
}
}

2 个答案:

答案 0 :(得分:1)

如果您在使用BufferedReader逐行浏览时遇到问题,可以使用Scanner代替,并假设文件不是很大,将整个文件扫描成字符串,然后使用{ {3}}获取文件中所有单词的数组:

import java.util.Scanner;
import java.io.File;
import java.io.FileNotFoundException;

public class ArrayFromFile{
    public static void main(String []args){
        try (Scanner scanner = new Scanner(new File("data.txt"))) {
            String text = scanner.useDelimiter("\\A").next(); //Get contents of file as String
            String[] words = text.split(" "); 

            for(String word : words) //Printing out the elements in the array
                System.out.println(word);

        } catch (FileNotFoundException e){
            e.printStackTrace();
        }
    }
}

答案 1 :(得分:0)

我不确定这是否是您所需要的,但在java 8中可以这样做: 假设我们有这样的文本文件:

cat dog
mouse zebra
goat bear
lizard carrot
car truck
bus bike

我们可以使用java 8流来获取所有内容并将其放入集合中:

Set<String> set_text = Files.lines(Paths.get("/data2/test/data.txt")).collect(Collectors.toSet());

然后我们将集解析为数组:

String[] arr = set_text.toArray(new String[set_text.size()]);

for(String text : arr)
{
    System.out.println(text);
}

如果这不是你需要的,请让我知道编辑它:)