Java if-else嵌套在循环中
我在下面的代码中遇到了一个奇怪的Java行为(它列出了包含1个子文件夹、2.mp4文件和1.mp3文件的文件夹)。我正在尝试为视频和其他文件指定不同的图标:Java if-else嵌套在循环中,java,android,Java,Android,我在下面的代码中遇到了一个奇怪的Java行为(它列出了包含1个子文件夹、2.mp4文件和1.mp3文件的文件夹)。我正在尝试为视频和其他文件指定不同的图标: private void fill(File f) { File[]dirs = f.listFiles(); this.setTitle("Current Dir: "+f.getName()); List<Item> dir = new ArrayList<Item>();
private void fill(File f)
{
File[]dirs = f.listFiles();
this.setTitle("Current Dir: "+f.getName());
List<Item> dir = new ArrayList<Item>();
List<Item> fls = new ArrayList<Item>();
try{
for(File ff: dirs)
{
Date lastModDate = new Date(ff.lastModified());
DateFormat formater = DateFormat.getDateTimeInstance();
String date_modify = formater.format(lastModDate);
if(ff.isDirectory()){
File[] fbuf = ff.listFiles();
int buf = 0;
if(fbuf != null){
buf = fbuf.length;
}
else buf = 0;
String num_item = String.valueOf(buf);
if(buf == 0) num_item = num_item + " item";
else num_item = num_item + " items";
//String formated = lastModDate.toString();
dir.add(new Item(ff.getName(),num_item,date_modify,ff.getAbsolutePath(),"directory_icon"));
}
else
{
String ext = "";
ext=getFileExtension(ff);
Log.d("Zox","'"+ext+"'");
if(ext!="mp4"){
Log.d("Zox","'"+ext+"'");
Log.d("Zox","FU");
}
else {
fls.add(new Item(ff.getName(), ff.length() + " Byte", date_modify, ff.getAbsolutePath(), "file_icon"));
}
}
}
条件和动作都是无稽之谈,只是为了调试。为什么Java不能识别字符串匹配?您正在使用
=
运算符,用于检查字符串的不相等性。
你应该使用
if(!ext.equals("mp4")){
Log.d("Zox","'"+ext+"'");
Log.d("Zox","FU");
}
- 不应使用==运算符进行字符串匹配
- 始终使用.equals或.equalIgnoreCase
ext.equals(“mp4”)解决问题!非常感谢,贝斯特!
if(!ext.equals("mp4")){
Log.d("Zox","'"+ext+"'");
Log.d("Zox","FU");
}