gpt4 book ai didi

java - 正则表达式将字符串与星号匹配

转载 作者:行者123 更新时间:2023-12-02 02:55:08 25 4
gpt4 key购买 nike

我正在用 Java 编码,我想分割我的字符串。我想将其拆分为。

/* sort */

是的,我计划拆分一个已读取为字符串的 .java 文件,因此我需要它包含“/* sort */”。我正在创建一个对 java 类文件中预定义的数组进行排序的代码。

正是如此,并在

处进行另一次分割
}

然后我需要帮助如何拆分数组,因为我将剩下

一个例子是这样的

final static String[] ANIMALS = new String[] /* sort */ { "eland", "antelope", "hippopotamus"};

我的目标是在 .java 文件中对该数组进行排序并替换它。这是我当前的代码

    private void editFile() throws IOException {
//Loads the whole Text or java file into a String
try (BufferedReader br = new BufferedReader(new FileReader(fileChoice()))) {
StringBuilder sb = new StringBuilder();
String line = br.readLine();

while (line != null) {
sb.append(line);
sb.append(System.lineSeparator());
line = br.readLine();
}
everything = sb.toString();
}
arrayCutOff = everything.split("////* sort *////");
for(int i = 0; i < arrayCutOff.length; i++){
System.out.println(arrayCutOff[i]);
}
}

这基本上将整个 .txt 或 .java 文件以完全相同的格式完全读取到一个字符串中。我计划在/* sort */处拆分它并对内部数组进行排序,但我意识到如果我这样做,我可能无法替换它。

最佳答案

考虑到您正在使用 java 8,您可能会朝这个方向发展:

private void editFile() throws IOException {
List<String> lines = Files.readAllLines(Paths.get(fileChoice()));
String content = lines.stream().collect(Collectors.joining(System.lineSeparator()));
Stream.of(content.split(Pattern.quote("/* sort */"))).forEach(System.out::println);
}

但是,您要求的技巧是Pattern.quote,它可以追溯到Java 5。它会引用一个文字,因此它可以用作正则表达式中的文字,并且有点比用反斜杠苦苦挣扎更方便(我认为也更可靠)...

关于java - 正则表达式将字符串与星号匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43222922/

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