gpt4 book ai didi

java - 一旦文本文件位于数组中,如何从文本文件的行中删除元素?

转载 作者:行者123 更新时间:2023-11-29 04:46:16 24 4
gpt4 key购买 nike

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

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

因此,在这个文本文件中,不需要第 1 行和第 2 行,所以我直接跳过它们。但是,我需要第 3 行和第 5 行中的单词。我当前的代码在“|”处拆分了第三行所以我得到“你好”或“::你好”。那么有没有办法删除一行中的元素呢?在第 3 行和第 5 行中,我只需要在“|”处拆分的单词。我想删除“< >”中的项目。

我当前的代码如下:

        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);

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

最佳答案

你可以摆脱 < > 用正则表达式替换它们:

"<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("<.+?>|:+|\\||=");

这将返回一个字符串数组,其中包含:

{huge, massive, big, tall}

您可以在此处尝试上述组合:http://www.regexpal.com/

关于java - 一旦文本文件位于数组中,如何从文本文件的行中删除元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36993853/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com