2014-11-20 5 views
0

Im, используя хэш-таблицу для сохранения файла (строка) и InetAddressпреобразования InetAddress в строку

Hashtable <String , InetAddress > file_location = new Hashtable <String , InetAddress >(); 

и им, используя это, чтобы получить адрес, но им только получить нулевое значение, возвращенное

file_location.put("ABD_9158" , IPAddress); //IPAdress is of InetAddress type 

InetAddress n = file_location.get("ABD_9158"); 

     System.out.println(n); 

попытался изменить n на строку, но havent удалось найти мой вопрос, как получить ipaddress?

+1

вы можете запустить программу в режиме отладки и проверки состояния вашей карты. Если на самом деле есть ключ 'ABD_9158' или любое соответствующее ему значение. – Shail016

+0

@Amr Hamada попробуйте распечатать 'HashMap',' System.out.println (fileLocation); ' –

+0

, когда я использую enumerate e = file_location.key(); и напечатайте это, он возвращает ABD_9158 –

ответ

0

Это небольшая программа, чтобы проверить, что вы хотите. Такая же часть кода, что вы поделили, работает отлично.

public static void main(String args[]) { 
     Hashtable<String, InetAddress> fileLocation = new Hashtable<String, InetAddress>(); 
     InetAddress addr; 
     try { 
      addr = InetAddress.getByName("127.0.0.1"); 
      fileLocation.put("ABD_9158", addr); // IPAdress is of InetAddress type 
      InetAddress n = fileLocation.get("ABD_9158"); 
      System.out.println(n); 
     } catch (UnknownHostException e) { 
      e.printStackTrace(); 
     } 
    } 

Выход

/127.0.0.1 
+0

yes Фактически, когда я использовал переменную вместо «ABD_9158», я правильно вернул адрес, вы знаете, почему это может произойти. я на сто процентов уверен, что я правильно пишу и сопоставляю его с переменной? –

+0

Я сравнивал обе строки, переменную и строку «ABD_9158», и по какой-то причине theyre не то же самое –

+0

@AmrHamada вы используете '==' или 'equals' для сравнения, позже даст правильный результат, если вы отсутствующий на этом –

Смежные вопросы