如果他们是相同的,为什么我的字符串不相等?

时间:2016-04-20 09:22:02

标签: java string comparison

我使用文件类编写了一个类Storage,它应代表一个Windows目录。它应该有一些方法作为folderOnly()方法,如果我的存储中只有文件夹,则返回一个布尔值。 额外信息:我正在查看的目录中只有.mp3文件和其他文件夹。

所以这里是代码:

import java.io.File;

public class Storage {
    String location;

    public Storage(String location){
        this.location = location;
    }

    public boolean folderOnly(){
        boolean onlyFolder = true;
        File folder = new File(location);
        String [] folderArray = folder.list();
        for(int i = 0; i < folderArray.length && onlyFolder ; i++){
            if(folderArray[i].length() >= 4 && folderArray[i].substring(folderArray[i].length()-4) == ".mp3"){
                onlyFolder = false;
            }
        }
        return onlyFolder;
    }
}

因此,如果我为具有大量.mp3文件的directoy创建“存储”对象(即使数字无关紧要),它仍然返回true。 所以我检查了中间结果:

由行folderArray[i].substring(folderArray[i].length()-4)创建的字符串,由System.out.println(String s)打印出来,似乎是“.mp3”。但如果我将它与".mp3"进行比较,则会返回false。

我错过了什么?

如果有一个非常简单的解决方案,或者我的英语很难理解,请不要怪我。我是英语和编程的全部新手。 :)

0 个答案:

没有答案
相关问题