Java HashMap

Moin,
ich muss gerade so etwas wie "Eliza" nachprogrammieren. Ich stehe vor dem Problem, dass, meiner Vermutung nach, die HashMap nicht gefuelt wird sowie sie soll. Denn als Ausgabewert bekomme ich immer "null".
Zu sagen sei noch, dass ich das ganze in zwei Methoden aufgeteilt hab, einmal in der Methode "antwortHardware" erzeuge ich eine HashMap, und will in die Map per Methode "mapBefuellen" etwas eintragen.

Code:
public String antwortHardware(String input)
	{	int j=0,k=0;
		String [] ausgabe;
		String antwort=" ";
		String [] einlesen=input.split(" ");
		for (int i=0; i<einlesen.length; i++)
		{	if(einlesen[i].equalsIgnoreCase("ram"))
			{	HashMap<String, String> ram =new HashMap<String, String>();
				ram=mapFuellen("ramCodeWords.txt", "ramAnswers.txt");
				String test = wertigkeit(einlesen, "ramCodeWords.txt");
				antwort=ram.get(test);
				break;
			}
			
		}
	
		return antwort;
	}

Code:
public HashMap<String, String> mapFuellen(String fileCode, String fileAnswers)
	{	int k=0;
		HashMap<String, String> ausgabe =new HashMap<String, String>();
		String [] codeword;
		k=((eingabe.readFile(fileCode)).length);
		codeword=new String [k];
		
		String [] answer;
		k=((eingabe.readFile(fileAnswers)).length);
		answer=new String [k];
		
		for(int i=0; i<k; i++)			
		{	ausgabe.put(codeword[i], answer[i]);
			
		}
		return ausgabe;
		
	}
eingabe.readFile(String input) ist eine Methode in einer anderen Klasse, wovon "eingabe" ein Objekt ist. Das ganze liesst einfach eine Textdatei ein.
Wenn irgendwas fuer das Verstaendnis unklar ist bitte nachfragen.

Gruss tanj
 
In der Funktion antwortHardware kannst du das new HashMap... weglassen.

codeword=new String [k];

Damit legst du zwar ein String Array an aber dieses wird nie mit Inhalt gefüllt. Also steht überall NULL drin.
 
Hatte uebersehen das ich das ja 2x machen muss. Einmal fuer codeword und fuer answer. Hat sich also erledigt.
 
Zurück
Oben