我想对两个列表进行去重处理,但现在发现两个list里的“1”不同。

图片说明

     public static void main(String[] args) throws Exception {
        String file1 = "file1.txt";
        String file2 = "file2.txt";
        ArrayList<String> list1 = addToList(file1);
        ArrayList<String> list2 = addToList(file2);
        String s1 = list1.get(0);
        String s2 = list2.get(1);
        if (!s1.equals(s2)){
            System.out.println("不同==="+s1+"==="+s2+"===");
        }
    }
    static ArrayList<String> addToList(String file) throws Exception {
        ArrayList<String> lines = new ArrayList<>();
        BufferedReader br = null;
        br = new BufferedReader(new FileReader(file));
        String strLine = null;
        while ((strLine = br.readLine()) != null){
            strLine = strLine.trim();
            if ( strLine != ""){
                lines.add(strLine);
            }
        }
        return lines;
    }

我一开始用你的代码测试,没有问题。
所以我认为是有不可见字符在里面导致的,我加了个7f到里面,可以看到如下:
图片说明

不同===1===1===
 new ArrayList<>
->
new ArrayList<String>
看下

你s1 和s2硬编码写“1”,看看进入if么

另外两个文本文件的编码是否一致,用ultraedit打开看看

楼主可以将内容复制到记事本中,或者想办法将其编码一致。