Я написал следующий Java-код,Не удается получить значение из Hashtable
try {
String str = "";
Hashtable< String, String> table = new Hashtable< String, String>();
fis = new FileInputStream("C:\\Users\\Dave\\Desktop\\station.txt");// FileInputStream
isr = new InputStreamReader(fis);
br = new BufferedReader(isr);
String str1 = "012649-99999";
String str2 = "012650-99999";
while ((str = br.readLine()) != null) {
String[] record = str.split("\t");
table.put(record[0], record[1]);
}
String stationName1 = table.get(str1);
String stationName2 = table.get(str2);
} catch(...)
и содержание station.txt
выглядит следующим образом:
012649-99999 SIHCCAJAVRI
012650-99999 TRNSET-HANSMOEN
Когда я запускаю программу, то stationName1 всегда нуль , а stationName2 может получить значение «012650-99999». Кто может сказать мне, почему это происходит? Заранее спасибо!
@matt, Да, это правильно, когда я изменил кодировку с «UTF-8» на «ANSI», это сработало, stationName1 может получить значение, но почему «UTF-8» не работает для этой ситуации? Я всегда использую этот формат.
Вы должны использовать HashMap для одной вещи. Как насчет того, что вы печатаете запись [0] и записываете [1], когда вы заполняете свою карту. Удостоверьтесь, что происходит в том, что вы думаете. – matt
1) Используйте 'HashMap'. 2) программа для 'interface' so' Map = new HashMap <>() '. 3) Почему вы не печатаете содержимое «Карты», чтобы увидеть, что там? Возможно, вам понадобится 'trim()'. –
Я могу убедиться, что запись [0] и запись [1] - это то, что я думаю и что хочу, я напечатал ее на консоли. – Coinnigh