String Array Werte einlesen / ausgeben

bRainLaG

Mitglied
Code:
static A [] readStringArray(int indent){
		
		Scanner in = new Scanner(System.in);
		A[] aa;
		
		writetabs(indent);
		System.out.println("A[] aa: ");
		
		writetabs(indent+1);
		System.out.print("Array lesen: (new/null): ");
		if(in.nextLine().equalsIgnoreCase("new")){
			writetabs(indent+1);
			
			while(true){
				
				
				System.out.print("Länge: ");
				
				if(in.hasNextInt()){
				 aa = new A [(in.nextInt())]; 
					break;
				}
				
				in.next();
				writetabs(indent+1);
				System.out.print("Falscher Wert! ");	

			}
			
			for(int i = 0; i < aa.length; i++){
				writetabs(indent+1);
				
				while(true){
					
					System.out.print("Wert "+ i + ": " );
					
					if(in.hasNext()){
						FEHLER aa[i] = in.next();
						 break;
					}
					
					in.next();
					writetabs(indent+1);
					System.out.print("Falscher Wert! ");
					
					}
				}
			}
		return aa;

Ich habe bei der Stelle die ich markiert habe einen Fehler, das er String nicht in A konvertieren kann. Was ich nun frage ist, was bedeutet das und wie kann ich das anpassen
 
Hallo!

Die Methode in.next() liefert einen String zurück. Also eine Zeichenkette. Jetzt versuchst du, diesen String in dein Array zu schreiben. Aber vorher hast du ja definiert, dass dieses Array nur "A"s enthalten soll... Was erwartest du denn, was passiert?

Wenn ich deine Sammlung Matchbox-Autos für dich verwalte, und du mir dann plötzlich aufträgst, deinen Kleiderschrank zu speichern, würde ich mich auch beschweren ;)

Du musst also entweder aus dem String erst ein A erzeugen, wie das geht, hängt davon was das A denn nun eigentlich ist - oder aber du speicherst in dem Array direkt die Strings ab, und keine As.

Btw: Ein "A" ist schnell geschrieben, aber nicht sonderlich aussagekräftig. Und deine while (true) Schleifen sind auch alles andere als schöner Programmierstil!

Gruß,

RoCMe
 
Zurück