java比对文字重复_Java编程实现比对两个文本文件并标记相同与不同之处的方法...
时间: 2024-03-03 11:53:45 浏览: 28
可以使用Java中的IO流读取两个文本文件的内容,然后使用字符串比对的方法来找出相同和不同之处。
具体实现步骤如下:
1. 使用Java中的IO流读取两个文本文件的内容,可以使用BufferedReader来读取文本文件。
2. 将读取到的文本内容转换为字符串,可以使用StringBuilder类来拼接字符串。
3. 使用字符串比对的方法来找出相同和不同之处,可以使用Java中的String类的equals()方法来比对字符串是否相同,也可以使用字符串的indexOf()方法来找出字符或者字符串在字符串中的位置。
4. 将找出的相同和不同之处标记出来,可以使用Java中的字符串拼接或者替换的方法来标记相同和不同之处。
下面是一个比对两个文本文件并标记相同与不同之处的Java代码示例:
```java
import java.io.BufferedReader;
import java.io.FileReader;
public class TextCompare {
public static void main(String[] args) {
String file1 = "file1.txt";
String file2 = "file2.txt";
try {
// 读取文件1的内容
BufferedReader reader1 = new BufferedReader(new FileReader(file1));
StringBuilder sb1 = new StringBuilder();
String line1;
while ((line1 = reader1.readLine()) != null) {
sb1.append(line1);
}
reader1.close();
// 读取文件2的内容
BufferedReader reader2 = new BufferedReader(new FileReader(file2));
StringBuilder sb2 = new StringBuilder();
String line2;
while ((line2 = reader2.readLine()) != null) {
sb2.append(line2);
}
reader2.close();
// 比对字符串
String str1 = sb1.toString();
String str2 = sb2.toString();
if (str1.equals(str2)) {
System.out.println("两个文本文件完全相同!");
} else {
// 标记相同和不同之处
StringBuilder result = new StringBuilder();
int len1 = str1.length();
int len2 = str2.length();
int len = Math.min(len1, len2);
for (int i = 0; i < len; i++) {
if (str1.charAt(i) == str2.charAt(i)) {
result.append(str1.charAt(i));
} else {
result.append("[");
result.append(str1.charAt(i));
result.append(":");
result.append(str2.charAt(i));
result.append("]");
}
}
if (len1 > len2) {
result.append(str1.substring(len2));
} else if (len1 < len2) {
result.append(str2.substring(len1));
}
System.out.println("两个文本文件不完全相同!");
System.out.println("相同之处:" + result.toString());
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
注意:在比对字符串时,上面的代码只是简单地比对字符串中每个字符是否相同,如果需要比对字符串中的单词或者句子是否相同,需要先进行字符串分割处理。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)