Java endsWith()没有按预期工作

时间:2011-12-05 23:06:22

标签: java

我可能只是忽略了一些显而易见的事情,但我不能为我的生活弄清楚为什么这部分代码不起作用。

if(txtFileLocation.toString().toLowerCase().endsWith(".twn")){
            file = new File(txtFileLocation.getText());
        } else {
            file = new File(txtFileLocation.getText() + ".twn");
            System.out.println(txtFileLocation.getText() + " didn't end in .twn, so appending it");
        }
        System.out.println(file.getPath());

输出如下:

C:\temp\netprimaries1.twn didn't end in .twn, so appending it 
C:\temp\netprimaries1.twn.twn

为什么没有endsWith(“。twn”)返回true?

3 个答案:

答案 0 :(得分:4)

txtFileLocation.toString()不是txtFileLocation.getText()

答案 1 :(得分:2)

可能是因为您在toString声明中呼叫getText而非if

答案 2 :(得分:0)

txtFileLocation.toString()可能会返回JVM中的对象地址,类似于TextField@0x232431。您应该使用txtFileLocation.getText()来获取TextField控件

所持有的实际文本