2011-12-05 30 views
0

我可能只是忽略了一些顯而易見的事情,但我不能爲我的生活弄清楚爲什麼這段代碼不工作。Java endsWith()不按預期工作

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是真的嗎?

回答

2

可能是因爲您在if聲明中調用toString而不是getText

+0

Bah所持有的實際文本,這就是當然的原因。謝謝。 –

4

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

0

txtFileLocation.toString()可能會返回JVM中的對象地址,如[email protected]。您應該使用txtFileLocation.getText()來獲取TextField控件