第一次合并 #2

Merged
hnu202326010417 merged 7 commits from develop into main 7 months ago

30
.gitignore vendored

@ -0,0 +1,30 @@
### IntelliJ IDEA ###
out/
!**/src/main/**/out/
!**/src/test/**/out/
.idea/
Record/
### Eclipse ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
bin/
!**/src/main/**/bin/
!**/src/test/**/bin/
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
### VS Code ###
.vscode/
### Mac OS ###
.DS_Store

@ -0,0 +1,84 @@
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
public class Check {
/**
*
*
* @param file
* @param title
* @return truefalse
*/
public static boolean check(File file, String title) {
// 获取当前文件所在目录
File parentDir = file.getParentFile();
// 检查目录是否存在
if (parentDir == null || !parentDir.exists()) {
return false;
}
// 获取目录下的所有文件
File[] historyFiles = parentDir.listFiles();
if (historyFiles == null) {
return false;
}
// 遍历所有历史文件进行查重
for (File historyFile : historyFiles) {
// 跳过目录,只检查文件
if (historyFile.isDirectory()) {
continue;
}
// 检查当前生成的文件本身,避免自己与自己比较
if (historyFile.equals(file)) {
continue;
}
// 检查文件中的题目是否重复
if (checkFileForDuplicate(historyFile, title)) {
System.out.println("发现重复题目: " + title);
return true;
}
}
return false;
}
/**
*
*
* @param file
* @param title
* @return truefalse
*/
private static boolean checkFileForDuplicate(File file, String title) {
try (BufferedReader reader = new BufferedReader(new FileReader(file))) {
String line;
while ((line = reader.readLine()) != null) {
// 跳过空行
if (line.trim().isEmpty()) {
continue;
}
// 解析题目内容(格式:序号. 题目)
String[] parts = line.split("\\s+", 2); // 最多分割成两部分
if (parts.length >= 2) {
String storedTitle = parts[1].trim();
if (storedTitle.equals(title)) {
return true; // 找到重复题目
}
}
}
} catch (IOException e) {
System.err.println("读取文件失败: " + file.getName() + ", 错误: " + e.getMessage());
// 文件读取失败时不认为重复避免因IO错误影响正常流程
}
return false;
}
}
Loading…
Cancel
Save