gpt4 book ai didi

java - 将 10 个文件与模板文件进行比较

转载 作者:行者123 更新时间:2023-12-02 00:44:52 24 4
gpt4 key购买 nike

我有 10 个文本文件(“C_1.txt”到“C_10.txt”),如下所示

 3   22   34   55   65   
9 19 0 47 62
10 28 40 54 72
15 23 31 52 61

我需要将它们与另一个如下所示的文件(“template.txt”)进行比较

 0   0   0   0   0   
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0

一旦我找到一个看起来相同的文件,我需要打印出文件名以及按相应顺序看起来最相似的其他文件的名称

起初我想过将它们转换为数组并比较它们,但效果不佳,所以我想知道是否有更好的方法来同时比较它们

最佳答案

我建议您过滤每个文件,然后将过滤后的输出与每个模板进行比较。如果输入文件仅包含非负整数,则可以使用更简单的 Pattern 类对象,将所有匹配项替换为“0”,将所有非匹配项替换为空。那么你的两个文件将是相等的。

类似于以下内容:

import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.regex.Pattern;
public class Change {
static Pattern changeNumbers = Pattern.compile("[0-9]+", Pattern.MULTILINE);
static Pattern changeTabsBlanks = Pattern.compile("[ ]+", Pattern.MULTILINE);
public static String normalizeIntegerString (String str) {
str = changeNumbers.matcher(str).replaceAll("0");
str = changeTabsBlanks.matcher(str).replaceAll("");
return str;
}

public static void emitString (String strname, String str) {
System.err.println(String.format("%s length is %d", strname, str.length()));
System.err.println(str);
System.err.println("");
}

public static void main (String args[]) throws Exception {
String patternFilename = args[0];
String inputFilename = args[1];
String patternFileContent = new String(Files.readAllBytes(Paths.get(patternFilename)));
String inputFileContent = new String(Files.readAllBytes(Paths.get(inputFilename)));

String filteredInputFileContent = normalizeIntegerString(inputFileContent);
String filteredPatternFileContent = normalizeIntegerString(patternFileContent);
emitString("filteredInputFileContent", filteredInputFileContent);
emitString("filteredPatternFileContent", filteredPatternFileContent);
if (filteredInputFileContent.contentEquals(filteredPatternFileContent))
System.out.println("match");
else
System.out.println("mismatch");
}

}

关于java - 将 10 个文件与模板文件进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57907545/

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