gpt4 book ai didi

java - 将单词从 1 个 txt 文件排序并复制到另一个文件无法正常工作

转载 作者:行者123 更新时间:2023-12-01 12:21:13 25 4
gpt4 key购买 nike

我的代码首先按顺序对 test.txt 中的单词进行排序,然后按长度排序并将它们复制到 sort.txt 中。 test.txt 中的单词如下所示:

  • 单词1
  • 单词5
  • 单词2
  • 单词6
  • 单词3
  • 单词4

所以每个单词都在自己的行中。我面临的问题是,假设我在 test.txt 中有一个单词,该单词之前有 1 个或多个空格。我需要删除那个空白区域。或者单词后有 1 个或多个空格。

示例:假设这是 test.txt(* 表示空格键,因此有 1 个或多个空格)

  • **字1
  • 单词5**
  • **字2
  • ****字6
  • 字3*****
  • word4***

我需要 sort.txt 的样子是

  • 单词1
  • 单词2
  • 单词3
  • 单词4
  • 单词5

所以没有那些空格(标记为 *)。正如你所看到的,我得到了格式良好的 sort.txt ,这是可以的,它可以工作,我只需要删除 thos * 或空格,那么有什么想法吗?

package test;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

public class sort {
public static class MyComparator implements Comparator<String>{
@Override
public int compare(String o1, String o2) {
if (o1.trim().length() > o2.trim().length()) {
return 1;
} else if (o1.trim().length() < o2.trim().length()) {
return -1;
}
return o1.compareTo(o2);
}
}
public static void main(String[] args) throws Exception {

String inputFile = "test.txt";
String outputFile = "sort.txt";

FileReader fileReader = new FileReader(inputFile);
BufferedReader bufferedReader = new BufferedReader(fileReader);
String inputLine;
List<String> lineList = new ArrayList<String>();
while ((inputLine = bufferedReader.readLine()) != null) {
lineList.add(inputLine);
}

Collections.sort(lineList,String.CASE_INSENSITIVE_ORDER);
Collections.sort(lineList, new MyComparator());

FileWriter fileWriter = new FileWriter(outputFile);
PrintWriter out = new PrintWriter(fileWriter);
FileWriter Fw = new FileWriter(outputFile);
PrintWriter pw = new PrintWriter(Fw);
for (String outputLine : lineList) {
if (!"".equals(outputLine.trim()))
out.println(outputLine); }
out.flush();
out.close();
fileWriter.close();

}
}

最佳答案

您已在 Comparator 中使用 String.trim()

当您将行添加到 List 时也只需使用它:

while ((inputLine = bufferedReader.readLine()) != null) {
lineList.add(inputLine.trim());
}

如果您不在其他地方重用它,您甚至可以将其从Comparator中删除。

关于java - 将单词从 1 个 txt 文件排序并复制到另一个文件无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26651540/

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