equals方法无法比较两个字符串问题

while ((line = bis.readLine()) != null) {
    if (line != null) {
        String[] split = line.split(";");
        // System.out.println(split[0]);
        Book book = new Book();
        for (int i = 0; i < 2; i++) {
            int index = split[i].indexOf(":");
            System.out.println(split[i].substring(0, index));
            System.out.println("书名".equals(split[i].substring(0, index)));
            if ("书名".equals(split[i].substring(0, index))) {
                name = split[i].substring(index + 1);
            } else {
                press = split[i].substring(index + 1);
            }
        }
        book.setName(name);
        book.setPress(press);
        book.setAuthor("赵思宇");
        books.add(book);
    }
}

真的是头一次看见编码问题影响到源码问题的情况

分割出来的字符串前面都是"书名"

但是进行比对的时候,第一行数据,equals书名返回就是false

原因就是因为这是utf8withbom模式

在数据前会加上bom!!

所以equals比对会报错!!


醉后不知天在水,满船清梦压星河