需要帮助阅读<>之间的单词并保存到数组

时间:2014-05-18 00:54:49

标签: java file io split

大家好,我正在尝试使用如下所示的预定.txt文件,并只读取<之间的文字。 >,然后将它们添加到数组并将它们写入HTML文件。 txt文件如下。 由于某种原因,它没有显示<之间的单词。 >在这。

"" = word between < > 

A, <""">
B, <""">
C, <""">
etc.

这是我当前尝试从文件中读取的代码,我理解.split和.delimeter问题是这些方法在所选字符之前读取所有内容。

import java.io.*;
import java.util.Scanner;

public class TickTacTwice {

public static void main(String[] args) throws IOException {


    Scanner sc = new Scanner(new File("/Users/Muhammed/Documents/tic_tac_twice.txt"));

    while(sc.hasNextLine()) {

        String S = sc.nextLine();

        String [] words = S.split("<");


        System.out.println(words[0]);
    }


    sc.close();
}

}

非常感谢任何帮助。 感谢

1 个答案:

答案 0 :(得分:0)

看起来你只是打印分割数组中的第一项&#34;单词&#34;,是否可能第一次出现&lt;&gt;是空的?要查看数组中的所有项,可以使用如下循环:

var i;
for (i = 0; i < words.length; i++) {
    System.out.println(words[i]);
}

这些行中的每一行都将包含所有字符,直到下一个&#34;&lt;&#34;所以你需要修剪到&#34;&gt;&#34;

更简单的方法是使用正则表达式 - 在StackOverflow上有一些很好的例子。

编辑:将代码与TAsks结合起来可以产生你想要的东西:

import java.io.*;
import java.util.Scanner;

public class TickTacTwice {

    public static void main(String[] args) throws IOException {

        Scanner sc = new Scanner(new File("/Users/Muhammed/Documents/tic_tac_twice.txt"));

        while(sc.hasNextLine()) {

            String S = sc.nextLine();

            Pattern pattern = Pattern.compile("<(.+?)>");

            Matcher m = pattern.matcher(S);

            while(m.find()) {

                 System.out.println(m.group(0));
            }
        }

        sc.close();
    }

}