将文本行从文本文件转换为Java中的多个列

时间:2018-02-18 03:55:54

标签: java

我想将以下输入从文本文件转换为列格式。

输入文字:

我要去芝加哥。

X1:去

X2:我是

X3:去芝加哥

他在踢足球。

X1:正在播放

X2:他

X3:足球

预期产出:

I X2

am X2

去X1

到X3

芝加哥X3

何X2

是X1

玩X1

足球X3

    FileInputStream fis = new FileInputStream("/input.txt");
    BufferedReader br = new BufferedReader(new 
   InputStreamReader(fis,"UTF-8"));
   while((line = br.readLine())!=null)
     {

          if(!(line.startsWith("X1:")

             {
                        String words[]=line.split(" ");
                        for(int i=0;i<words.length;i++)
                        {

                             //System.out.println(words[i]);
                             String abc[] = words[i].split(" ",100); 
                             String w="";
                             for(int j=0; j<abc.length;j++)
                             {
                              //System.out.println(abc[j]);
                                 if(j<99)
                                     //w=w+abc[j]+"\t"+"\n";
                                     w=w+abc[j]+"\t";
                                 else
                                     w=w+abc[j];
                        }

                             str.append("\n");
                             str.append(w);
                             str.append("\n");
                             System.out.println(w);
                             fw.write(w);
                             fw.write("\n");

                        }
                        str.append("\n");


                   }//end of if
              }

1 个答案:

答案 0 :(得分:0)

您需要解析文本文件并查找“X1:”,“X2”和“X3:”等关键字,并存储其后的字符串。

当您阅读完整句子后,将其存储到字符串中并执行以下操作:

String[] words = sentence.split("\\s+");

将按空格分割单个单词。对于来自文本文件的关键字“X1:”,“X2:”和“X3:”之后的字符串执行相同的操作。

然后,假设您将X1中的每个单词存储为String数组:

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

for(String word : words) {
    for(int j = 0; j < X1.length; j++) {
        if(X1[j].equals(word))
            output.add(word + " X1");
    }

    // do the same for X2, X3
}

// Print out the output
for(String elem : output)
    System.out.println(elem);