Hallo WiF-Schülerin,
gleich mal vorneweg: Es geht vermutlich um JAVA, richtig?
Dann fangen wir mal mit ‚Variable „String“‘ an.
Sicherlich hattest du die „Klasse String“ gemeint.
Ein String ist ein spezieller Datentyp (in JAVA eine Klasse), der Text/Zeichenketten aufnehmen kann.
Man kann damit so etwas wie
String s = "Hallo Welt.";
machen, aber auch Strings verketten, z. B.:
String ss = "Wie geht es dir?";
String sss = s + " " + ss;
Dann enthält der String sss den Wert (Text):
„Hallo Welt. Wie geht es dir?“.
Beachte, dass Strings immer mit Anführungszeichen definiert werden. Ein String darf sich nicht über mehrere Zeilen erstrecken. Das hier wäre also falsch:
String s = "Hallo
Welt";
Zeilenumbrüche müsstest du so darstellen:
String s = "Hallo\nWelt";
wobei ‚\n‘ den Zeilenumbruch symbolisiert.
(Für C# gälte all das übrigens genauso.)
Hier findest du die offizielle Dokumentation zum JAVA String:
http://download.oracle.com/javase/6/docs/api/java/la…
Jetzt mache ich noch einen kleinen Ausflug zum Thema Variablen, weil es wichtig ist, die korrekte Terminologie zu verwenden, wenn man richtig verstanden werden will…
Eine Variable besteht als solche aus zwei Teilen:
Zum einen der Typ - z. B. eine Zahl (int, long, double), ein Text (String) oder auch eine komplexe Klasse - zum anderen der tatsächliche Wert. Außerdem hat jede Variable einen Namen, an dem sie im Programm erkannt wird. Beispiel:
int n = 7;
Das definiert eine Variable vom Typ int mit dem Wert 7, die im Programm mit dem Namen n angesprochen wird.
Üblicherweise wird in obigem Beispiel von der Variablen n gesprochen. Wenn du jetzt „Variable String“ sagst, wäre das eigentlich eine Variable, deren Namen „String“ ist - wobei sie nicht notwendigerweise auch vom Typ String sein muss.
Das hier wäre zulässig (da JAVA Typsystem und Namensbereich strikt trennt):
int String = 8;
Wobei das sicherlich ein irreführender Name und daher nicht zu empfehlen wäre - außerdem verletzt er die JAVA Namenskonvention, nach der Variablennamen als ‚Camel case‘ mit führendem Kleinbuchstaben zu benennen sind (Camel case: alles kleingeschrieben, bei zusammengesetzten Bezeichnern jeweils der folgende Wortanfang groß, also z. B. HalloWeltProgramm, beispielVariable, …).
Nun zu deiner Aufgabe:
Von der Beschreibung und auch vom Anspruch als Anfängeraufgabe soll das sicherlich ein Konsolenprogramm werden (für grafische Benutzerflächen, frage mich nach AWT, Swing oder SWT).
Da Arrays von fest definierter und nicht änderbarer Größe sind, musst du zuerst einmal wissen, wie groß die Arrays sein sollen.
Daher musst du dies erst einmal über die Konsole erfragen („Festlegung der Kanditatenzahl“).
Jetzt musst du natürlich zuerst einmal an die Benutzereingaben herankommen. Direkt mit System.in zu arbeiten ist recht mühsam.
Dieses Stückchen Code stellt dir einen BufferedReader bereit:
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
Damit kannst du mit in.readLine() eine ganze Zeile abfragen, wäre also alles, was du bis zur Eingabe der Zeilenschaltung („Enter“) schon eingegeben hast.
Also in etwa so:
System.out.print("Anzahl der Kandidaten: ");
String countAsText = in.readLine();
Das ist aber ein reiner Text (ein Altbekannter, ein String!), also bei Eingabe von „11“ zweimal das Zeichen ‚1‘ hintereinander. Damit kann man natürlich nicht rechnen, das muss man zuerst in eine wirkliche Zahl (in diesem Fall sinnigerweise ein int) umwandeln.
Schau dir dazu mal Integer.parseInt an (JAVA Doku):
http://download.oracle.com/javase/6/docs/api/java/la…
Beachte auch, dass das eine NumberFormatException werfen kann, falls der Benutzer Zeichen eingibt, die nicht zur Darstellung einer Zahl gehören.
Anschließend erzeugst du die benötigten Arrays. Beachte hier wiederum, dass die Zahl, die der Benutzer eingegeben hat, nicht negativ sein kann.
Im Grunde müsste man die Exception mittels try - catch fangen (falls du das schon kennst), den Wert vor der Erzeugung des Arrays prüfen und ggf. mit einer entsprechenden Fehlermeldung kontrolliert das Programm beenden. Aber für einen ersten Schnellschuss solltest du durchaus darauf verzichten können.
Soviel erst mal als Starthilfe, insbesondere Strings. Bei weiteren Fragen stehe ich dir gerne zur Verfügung.
Viele Grüße,
Sandro