Java字符串不等于

时间:2017-05-23 12:55:57

标签: java string equals

所以我有String数组

String[] faculties = new String[21];

我需要在.txt文件中填写看起来像

的院系名称
  

数学& CS;第一专业;第一个计划;等

     

数学& CS;第二专业;第一个计划;等

     

数学& CS;第二专业;第二个计划;等

     

物理;第一专业;第一个计划;等

     

物理;第一专业;第二个计划;等

我使用下一个代码来获取这些名称

FileReader input = new FileReader("faculties1.txt");
BufferedReader bufRead = new BufferedReader(input);
String myLine;
int f = 0;

    while((myLine = bufRead.readLine())!= null){
        String[] arr = myLine.split(";");

        if(f == 0){
            faculties[f] = arr[0];
            f++;
        }
        else{
            if(!faculties[f-1].trim().equals(arr[0].trim())){
                faculties[f] = arr[0];
                f++;
            }
        }
    }

但是当我尝试检查我的阵列时

for(int i = 0; i < f; i++){
        System.out.println(faculties[i]);
    }

控制台说我

  

数学&amp; CS

     

数学&amp; CS

     

物理

我不明白为什么Java将“Math&amp; CS”第二次放入我的阵列。

1 个答案:

答案 0 :(得分:1)

我试过这个工作正常并且输出会按照您的预期返回,无论如何您需要抛出异常。

ls -al ~/.ssh

根据我可以,

文本文件中拼写错误的字符。使用不同的文本编辑器而不是Windows记事本进行检查。

<强>更新

添加此答案后,我看到您的问题已解决您的上一条评论

我正在添加此评论,因为如果有人没有看到您的评论,这将对他们有所帮助。

  

在我的项目中使用UTF-8 .txt 来查看控制台中的西里尔符号,但当我将.txt更改为ANSII 控制台时说我数学&amp; CS物理*