gpt4 book ai didi

java - 在数组中拆分 .txt 文件

转载 作者:太空宇宙 更新时间:2023-11-04 07:56:38 25 4
gpt4 key购买 nike

我想实现一个读取文件(即 .txt )并将文件保存在数组中的程序(我已经这样做了)。然后我想要一个二维数组,其中只保存每行的单词。

例如,如果文件包含两行,每行有两个单词,我想要 array[0][0]第一行的第一个单词和array[0][1]中拥有第一行的第二个单词等。

我有以下代码:

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

System.out.println("line " + (i+1) + ": ");

for (int j=0; j < channels.length; j++){
System.out.println("word " + (j+1) + ": ");
System.out.println(channels[j]);
}

System.out.println();
}

其中 aryLines包含所有行,但我没有找到执行我所描述的操作的解决方案。

最佳答案

让你的1-D数组是:-

String[] lines = new String[10];

您首先需要声明一个数组的数组:-

String[][] words = new String[lines.length][];

然后迭代它,对于每一行,将其拆分并将其分配给内部数组:-

for (int i = 0; i < words.length; i++) {
words[i] = lines[i].split("\\s+");
}
<小时/>

现在,问题是,并非所有单词都仅用空格分隔。它们还有许多标点符号需要您考虑。我会让你根据所有标点符号来拆分它。

例如:-

"This line: - has word separated by, : and -"

现在,您需要找到句子中使用的所有标点符号。

<小时/>

如果您不确定行中使用的所有标点符号,您可以做的一件事是使用Regex仅匹配单词的模式。并将每个匹配的单词添加到数组列表中。

"\\w+"  // this regex will match one or more characters forming words

让我们看看它在上面的示例中如何工作:-

    String str = "This line: - has word separated by, : and -";
List<String> words = new ArrayList<String>();

Matcher matcher = Pattern.compile("\\w+").matcher(str);

while (matcher.find()) {
words.add(matcher.group());
}

System.out.println(words);

输出:-

[This, line, has, word, separated, by, and]

您可以在我发布的上述循环中使用此方法。

关于java - 在数组中拆分 .txt 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13526373/

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