2011-12-05 12 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()); 

出力は信者のようになります( "TWN")

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

なぜendsWith trueを返すのですか?

答えて

2

ifの文ではtoStringで、getTextではないと思われるためです。

+0

バーで保持されている実際のテキストを取得するには、txtFileLocation.getText()を使用する必要があります。ありがとうございました。 –

4

txtFileLocation.toString()txtFileLocation.getText()ではありません。

0

txtFileLocation.toString()はおそらく[email protected]のようなJVMのオブジェクトアドレスを返します。 TextFieldコントロール

関連する問題