【问题标题】:Splitting a text file at regular expressions and creating an array以正则表达式拆分文本文件并创建数组
【发布时间】:2020-10-21 18:37:09
【问题描述】:

我需要一些帮助来使用 java 拆分文本文件。我有一个2000字左右的文本文件,文本文件格式如下-

"A", "HELLO", "RANDOM", "WORD"... etc

我的目标是将这些单词放入一个字符串数组中。使用扫描仪类,我获取文本并创建一个字符串,然后尝试拆分并添加到数组中,如下所示。

Scanner input = new Scanner(file);

while(input.hasNext()){

   String temp = input.next();

   String[] wordArray = temp.split(",");
}

添加到数组后,当我想使用或打印每个元素时,将它们存储在“”周围。而不是打印

A
HELLO
RANDOM

…等他们正在打印

"A"
"HELLO"
"RANDOM"

所以我的问题是如何摆脱这些正则表达式并在每个单词处拆分文本,这样我就没有正则表达式了?

非常感谢

【问题讨论】:

标签: java arrays regex


【解决方案1】:

使用它来用空字符串替换所有出现的 "。

wordArray[i].replaceAll("/"", "");

循环执行。

【讨论】:

    【解决方案2】:

    试试这个

            List<String> allMatches = new ArrayList<>();
            Scanner input = new Scanner(new File(FILE_PATH), StandardCharsets.UTF_8);
            while(input.hasNext()){
                String temp = input.next();
                Matcher m = Pattern.compile("\"(.*)\"").matcher(temp);
                while (m.find()) {
                    allMatches.add(m.group(1));
                }
            }
            allMatches.forEach(System.out::println);
    

    【讨论】:

      【解决方案3】:

      就您而言,当您拥有类似"A", "HELLO", "RANDOM", "WORD"... etc 这样的所有值时,其中每个值都有分隔符", ",您可以使用此 temp.split("\", \"");,而无需使用循环。

      【讨论】:

        猜你喜欢
        • 2022-01-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-23
        • 2016-03-01
        • 1970-01-01
        相关资源
        最近更新 更多