2016-10-14 1 views
0

Ich habe gerade mein Abenteuer mit der Programmierung begonnen. Ich mag das Thema sehr, aber manchmal stoße ich auf etwas, das ich nicht ganz verstehe.
wie dies zum Beispiel:Wörterbücher und Karte

//Complete this code or write your own from scratch 
import java.util.*; 
import java.io.*; 

class Solution{ 
    public static void main(String []argh){ 
     Scanner in = new Scanner(System.in); 
     Map<String, Integer> phonebook = new HashMap<String, Integer>(); 
     int n = in.nextInt(); 
     for(int i = 0; i < n; i++){ 
      String name = in.next(); 
      int phone = in.nextInt(); 
      phonebook.put(name, phone); 

     } 
      // Write code here 

     while(in.hasNext()){ 
      String s = in.next(); 
      int phonenumber = phonebook.get(s); 
      if(phonebook.equals("null") == true){ 
       System.out.println("Not found"); 
      } 
       else if(phonebook.equals("null") == false){ 
        System.out.println(s + "=" + phonebook.get(s)); 

       } 
     } 
    in.close(); 
    } 
} 

Ich habe so einen Ausgang habe, erhielt aber ich habe so etwas wie dies:

Ihren Output (stdout)

sam=99912222 

Erwartete Ausgabe

sam=99912222 
Not found 
harry=12299933 
+0

Und welchen Teil verstehst du nicht? – Amy

+0

Hinweis: 'null' und' "null" 'sind nicht das selbe –

+2

' phonebook.equals ("null") == true' sieht komisch aus – dit

Antwort

3

phonebook ist eine Hashmap. Es kann nicht einen String von "null"

if(phonebook.equals("null") == true) 

gleich Ich glaube, Sie sind verwirrt darüber, wie passend für null Werte zu überprüfen. Wenn ein Schlüssel in einer Hashmap nicht existiert, gibt er null, nicht "null" zurück. Außerdem müssen Sie den Wert überprüfen, nicht die Hashmap selbst.

Deshalb

Integer phonenumber = phonebook.get(s); 
if(phonenumber == null){ 
    System.out.println("Not found"); 
} 
else { 
    System.out.println(s + "=" + phonenumber); 
} 

Dann if (val == true) nicht verwandtes Problem ist nur if (val). Und keine Notwendigkeit für eine else if, wenn Sie nur die Bedingung umkehren

+0

Ich weiß nicht wie, aber das Problem war –

+0

Ich weiß nicht wie, aber das Problem war int phonenumber = phonebook.get (s); –

+0

Und sollte Integer phonennumber = phonebook.get (s) gewesen sein; –

Verwandte Themen