2012-01-18 8 views
0
Properties segmentClients = new Properties(); 
segmentClients.load(new FileInputStream(pathSegmentFile)); 

segmentClients.containsKey(strANI); //returns false/strANI = "9202599784" 

ファイルは、このようなものです:Properties.containsKeyがfalseを返すのはなぜですか?

# 01.2012 
9202599784 
9202599573 
9208552001 
9209374107 
9209374949 

strANI = 9202599784

なぜそれがfalseを返すのですか?

UPD:問題は、ファイルがUnicodeでいたということでした、ANSIで保存した後戻ります

+2

これはプロパティファイルではありません... – skaffman

+0

問題を示す短くて完全なプログラムは本当に助かります... –

+1

@skaffman技術的にはこれらすべての数字は空の文字列のキーに過ぎません。有用なプロパティファイルではありません... –

答えて

3

segmentClients.containsKey("9202599784");を働き始め、真の理由:

プロパティリストの各キーとそれに対応する値を文字列です。

証拠、このテストに合格します:プロパティファイルが見つかり、開かれている場合は、チェックすべき

Properties p = new Properties(); 
p.load(new StringBufferInputStream("# 01.2012\n" + 
       "9202599784\n" + 
       "9202599573\n")); 
assertTrue(p.containsKey("9202599784")); 
+0

つまり整数ではありません – skaffman

+0

strANIは文字列= "9202599784" – VextoR

+0

ありがとうございました。問題はANSIで保存したファイルがUnicodeで保存されていたことです。 – VextoR

関連する問題