一旦它在数组中,如何从文本文件中的行中删除元素?

时间:2016-05-03 00:44:06

标签: java arrays split

所以,我有一个看起来完全像这样的文本文件:

<sgkljsd>::=<sdfasfda> <sadfasf>
<lol>::=<dgs> <pdja> <l>|<np>
<or>::hello|howdy
<sdfas>::=<saf>|<sdf> <adlp>
<needd>::=huge|massive|big|tall

因此,在这个文本文件中,不需要第1行和第2行,所以我只是跳过它们。但是,我需要第3行和第5行中的单词。我当前的代码在&#34; |&#34;中分割第3行。所以我得到&#34;你好&#34;或&#34; ::你好&#34;。那么有没有办法删除一行中的元素?在第3行和第5行中,我只需要在&#34; |&#34;处分割单词。我想摆脱&#34;&lt;&lt; &GT;&#34;

我目前的代码如下:

        Scanner scan = new Scanner(System.in);
        System.out.print("Enter a file name: ");
        String fileName = scan.nextLine();
        File infile = new File(fileName);
        Scanner readIt = new Scanner(infile);

        // removes first line of file
        String junkLine1 = readIt.nextLine();

        // removes second line of file
        String junkLine2 = readIt.nextLine();

        //gets random <word> from text file
        String word = readIt.nextLine();
        // breaks it into "<or>hello" and "howdy"
        String[]word1 = word.split("\\|");
        int rnd = r.nextInt(word1.length);
        String rnd_word = (word1[rndDp]);
        System.out.println(rnd_word);

所以,我想要做的是随机选择数组中的单词并随机打印出问候语,但我似乎无法弄清楚如何删除不必要的文本。感谢您提供有关如何修复或解决此问题的任何想法。

1 个答案:

答案 0 :(得分:3)

你可以摆脱&lt; &GT;用正则表达式替换它们:

"<needd>::=huge|massive|big|tall".replaceAll("<.+?>", "");

返回:

::=huge|massive|big|tall

"<needd>::=huge|massive|big|tall".replaceAll("<.+?>::=", "");

返回:

huge|massive|big|tall

或者您也可以拆分:

"<needd>::=huge|massive|big|tall".split("<.+?>|:+|\\||=");

将返回包含以下内容的String数组:

{huge, massive, big, tall}

您可以尝试上面的组合:http://www.regexpal.com/