gpt4 book ai didi

java - 在java中使用正则表达式组

转载 作者:行者123 更新时间:2023-12-02 11:01:57 26 4
gpt4 key购买 nike

我正在编写一个程序,该程序应该使用正则表达式更改文本文件。我有一些命令,它们可以在 NotePad++ 等中运行。我现在想要在 java 中使用相同的命令来使其更快。难道是文件保存和读取方式导致的?

private List<String> lines = new ArrayList<String>(10000000);

// read original file to an ArrayList
public String[] readOriginalFile(String filename) throws IOException {
FileReader fileReader = new FileReader(filename);
BufferedReader bufferedReader = new BufferedReader(fileReader);
String line = null;
while (((line = bufferedReader.readLine()) != null)){
lines.add(line);
}
bufferedReader.close();
return lines.toArray(new String[lines.size()]);
}

public void replaceWordsOne() {
ArrayList<String> lns = new ArrayList<String>(10000000);
for (String ln : lines) {
lns.add(ln.replaceAll("^(\\[.*?\\])\\s+(\\[.*?\\])\\s(\\[.*?\\]\\s){1,}(\\[.*?\\])", "\1\t\2\t\4\t"));
}
lines.clear();
lines = lns;
}

public void writeToNewFileOne(String FinalDirectory) throws IOException {
FileWriter writer = new FileWriter(FinalDirectory);
for (String str : lines) {
writer.write(str +"\n");
}
writer.close();
}

最佳答案

我认为主要原因是这一行:

private List<String> lines = new ArrayList<String>(10000000);

java中的arraylist是动态调整大小的数组,这意味着你不需要用元素初始化列表。

应该是这样的:

private List<String> lines = new ArrayList<String>();

关于java - 在java中使用正则表达式组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51266537/

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