28

我必须将数据从 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!");
    }
}

但我总是得到:

选择一个excel文件!

我找不到我的代码有什么问题,有人可以帮忙。

4

8 回答 8

28

下列的

extension != excel

应该

!excel.equals(extension)

或者

!excel.equalsIgnoreCase(extension)

也可以看看

于 2012-06-07T08:38:39.203 回答
7

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

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

于 2012-06-07T08:45:17.950 回答
6
if (extension != excel){
   JOptionPane.showMessageDialog(null, "Choose an excel file!");

}

应该用作

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

}

 if (upload == "OK") {
 JOptionPane.showMessageDialog(null,"Upload Successful!");
}

作为

 if ("OK".equals(upload)) {
 JOptionPane.showMessageDialog(null,"Upload Successful!");
}
于 2012-06-07T08:44:08.933 回答
3

您可以使用 Apache Commons Api 检查文件扩展名

String filename = file.getName();
if(!FilenameUtils.isExtension(filename,"xls")){
  JOptionPane.showMessageDialog(null, "Choose an excel file!");
}

http://commons.apache.org/io/api-release/index.html?org/apache/commons/io/package-summary.html

于 2012-06-07T09:50:57.793 回答
3

利用

excel.equals(extension)

or

excel.equalsIgnoreCase(extension)
于 2012-06-07T08:43:19.087 回答
1

在您的情况下使用equals()方法而不是!=符号。我的意思是写

if (!(extension.equals(excel))){..........}
于 2012-06-07T08:39:08.203 回答
1

在我的程序中,我做到了

if(file_name.endsWith(".xls") || file_name.endsWith(".xlsx"))
   // something works with file
于 2017-01-19T14:10:20.320 回答
0

怎么样

if (filename.endsWith("xls"){
    <blah blah blah>
}

?

于 2015-02-19T03:27:17.297 回答