用Java检查文件扩展名

Joe*_*e88 28 java string if-statement

我必须将数据从Excel文件导入数据库并执行此操作,我想检查所选文件的扩展名.

这是我的代码:

String filename = file.getName();
String extension = filename.substring(filename.lastIndexOf(".") + 1, filename.length());

String excel = "xls";
if (extension != excel) {
    JOptionPane.showMessageDialog(null, "Choose an excel file!");
}
else {
    String filepath = file.getAbsolutePath();
    JOptionPane.showMessageDialog(null, filepath);
    String upload = UploadPoData.initialize(null, filepath);

    if (upload == "OK") {
        JOptionPane.showMessageDialog(null, "Upload Successful!");
    }
}
Run Code Online (Sandbox Code Playgroud)

但我总是得到:

选择一个excel文件!

我找不到我的代码有什么问题,请有人帮忙.

Jig*_*shi 28

以下

extension != excel
Run Code Online (Sandbox Code Playgroud)

应该

!excel.equals(extension)
Run Code Online (Sandbox Code Playgroud)

要么

!excel.equalsIgnoreCase(extension)
Run Code Online (Sandbox Code Playgroud)

也可以看看

  • +1它应该是`!excel.equalsCaseIgnore(extension)`;) (7认同)
  • 啊哈.很好的陷阱彼得,精心摆放.它实际上是`equalsIgnoreCase()`而不是`equalsCaseIgnore`.@JigarJoshi不,它不是'或者equalsIgnoreCase',它真的_should_是`equalsIgnoreCase`而不是`equals`. (2认同)

mis*_*tor 7

==测试参考平等.对于价值平等测试,请使用.equals.String#equalsIgnoreCase如果您希望在相等测试期间忽略大小写,请使用.

另一件事:不要重新发明轮子,除非它被严重破坏.在您的情况下,您应该使用Apache Commons的FilenameUtils#isExtension来检查扩展名.


ami*_*ngh 6

if (extension != excel){
   JOptionPane.showMessageDialog(null, "Choose an excel file!");

}
Run Code Online (Sandbox Code Playgroud)

应该用作

if (!extension.equals(excel)){
   JOptionPane.showMessageDialog(null, "Choose an excel file!");

}
Run Code Online (Sandbox Code Playgroud)

 if (upload == "OK") {
 JOptionPane.showMessageDialog(null,"Upload Successful!");
}
Run Code Online (Sandbox Code Playgroud)

 if ("OK".equals(upload)) {
 JOptionPane.showMessageDialog(null,"Upload Successful!");
}
Run Code Online (Sandbox Code Playgroud)