所以我有一个字符串数组
String[] faculties = new String[21];
我需要从一个类似于.txt文件的文件中获取学院名称,并将其填充到下面的代码中:
Math & CS; 第一专业; 第一个项目; 等等
Math & CS; 第二专业; 第一个项目; 等等
Math & 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]);
}
控制台提示我
数学与计算机科学
数学与计算机科学
物理学
我不明白为什么Java第二次将“数学与计算机科学”放入我的数组中。
arr[0] == "Math & CS"
且faculties[f-1] == "Math & CS"
,当f == 1
时,if(!faculties[f-1].trim().equals(arr[0].trim()))
也会返回true
。 - slxvxBatihfaculties[f-1]
和arr[0]
进行 String.compare 操作,如果返回值不是 0 就表示存在字符问题,正如 @litelite 所说。 - Ishnark