Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
muss ich hier in diesem Fall Array Methode verwenden? Oder ist es auch ohne lösbar? Danke im Voraus.
die Aufgabe lautet:
Gruppen
Es soll wieder eine Namensliste erfasst werden,
beendet durch "." (Siehe Namensliste)
Nun soll das Programm alle möglichen 2er-Gruppen ausgeben
(z.B. Eingabe Dagmar, Petra und Frieder
Ausgabe (zum Beispiel):
Dagmar Petra
Dagmar Frieder
Petra Frieder
Hinweis: Sie brauchen zwei ineinander gesteckte Schleifen
nunja, ein Array empfiehlt sich eigentlich nur, wenn die Anzahl der aufzunehmenden Elemente (Namen) vorher bekannt ist bzw. vom Nutzer eingegeben werden kann. In diesem Fall würde ich sagen eher kein Array nehmen. Besser eine ArrayList. Diese kann beliebig "wachsen"...
Code:
List<String> l = new ArrayList<String>();
erzeugt eine ArrayList die Strings aufnehmen kann.
ein Array empfiehlt sich eigentlich nur, wenn die Anzahl der aufzunehmenden Elemente (Namen) vorher bekannt ist bzw. vom Nutzer eingegeben werden kann. In diesem Fall würde ich sagen eher kein Array nehmen. Besser eine ArrayList. Diese kann beliebig "wachsen"...
ein ArrayList empfielt sich auch dann, wenn die Anzahl vorher bekannt ist, bzw sich nur äußerst selten ändert, oder wenn unbedingt random access benötigt wird. In diesem Fall wäre eher eine LinkedList angebracht, weil man ja dauernd neue Elemente hinzufügt: das ist bei ArrayList auf dauer relativ teuer, bei LinkedList wird es dagegen immer in konstanter Zeit erledigt.
es müssen namen eingegeben werden man beendet die eingabe mit "." danach müssen die eingegebene namen mit buchstabenanzahl angezeigt werden aber es musst in liste ausgegeben werden ich kann ja alles bis auf listen ausgabe
es müssen namen eingegeben werden man beendet die eingabe mit "." danach müssen die eingegebene namen mit buchstabenanzahl angezeigt werden aber es musst in liste ausgegeben werden ich kann ja alles bis auf listen ausgabe
Ja, lol, dann sag doch konkret wo es stress gibt.
Du hast irgendeine Hausaufgabe hingeworfen, ARadauer hat dir irgendeine Teillösung an den Kopf geworfen, und das war imho schon ein Tick zu viel, da bleibt ja kaum was für dich übrig^^
Was ist jetzt also dein Problem mit der Ausgabe? Auf die Konsole kann man wunderbar mit
Code:
System.out.println()
zeugs hinschreiben, was braucht man denn da noch großartig?
Ja, lol, dann sag doch konkret wo es stress gibt.
Du hast irgendeine Hausaufgabe hingeworfen, ARadauer hat dir irgendeine Teillösung an den Kopf geworfen, und das war imho schon ein Tick zu viel, da bleibt ja kaum was für dich übrig^^
Was ist jetzt also dein Problem mit der Ausgabe? Auf die Konsole kann man wunderbar mit
Code:
System.out.println()
zeugs hinschreiben, was braucht man denn da noch großartig?
Name: müller Buchstaben: 6
Name: franz Buchstaben: 5
Name: gert Buchstaben: 4
Exception in thread "main" java.lang.NullPointerException
at namenlänge.Main.main(Main.java:44)
Name: nullJava Result: 1
BUILD SUCCESSFUL (total time: 12 seconds)
Nun stört mich jetzt die Meldung Ex.... wie krieg ich das weg kannst du mir das bitte erklären ich weis ich nerv gerade aber bin anfängerin muss es mir selber beibringen.SORRY
erstmal: bitte code-tags verwenden. Im Forum herrscht im moment leider wegen dem Umzug das totale chaos, aber dennoch bitte ich nächstes mal den code in code-tags der Gestalt
[€ODE]
//mein code
[/€ODE]
einzuschließen (mit C statt €, versteht sich). Thx.
Also, für den Anfang einige bemerkungen:
Code:
String[] names = {};
diese variable wird doch gar nicht verwendet oder? Da sollten doch auch Warnungen raustropfen, bzw jede normale IDE würde es gelb anstreichen => raus damit.
Code:
for(int i=0; i<=liste.length;i++){
sowas endet immer mit einer ArrayIndexOutOfBoundsException, weil der letzte Index gar nicht existiert. es soll stattdessen
Code:
for(int i=0; i<liste.length;i++){
heißen, sonst geht das kaputt. Das kommt an einer weiteren stelle vor: dort auch korrigieren.
So, und was hast du denn hier gemacht?
Code:
if(liste[j]!=null){
}
welchen Sinn soll so eine Konstruktion überhaupt erfüllen? Die kann doch prinzipiell niemals etwas machen.
Es sollte ja gegen NullPointerExceptions helfen. Wann fliegt eine NullPointerexception? Wenn du irgendwo auf ein null zugreifst, und versuchst damit irgendwas zu machen. Etwa
Code:
null.length(); //es gibt immer exception, was sonst...
genauso wie in dem konkreten Fall:
Code:
liste[j].length(); //es gibt exception wenn liste[j]==null ist
genau das sollte die von mir hingeschriebene if-konstruktion verhindern. Also nochmal:
Code:
if(liste[j]!=null){
liste[j].length; //<-Hier ist das element garantiert nicht null, also ist alles oK
}
Im hinblick auf den gesammten code erscheint mir sowas aber allgemein weniger geeignet: du schachtelst da zuviel, if in schleifen, schleifen in if's, das ist doch alles viel zu kompliziert. Unterteile das doch:
Code:
String[] liste=new String[langGenugEtwa100];
//EINGABE
for(int i=0; i<liste.length; i++){
//name einlesen
//falls "." dann break
//ansonsten zur liste hinzufügen, weitermachen
}
//AUSGABE
for(int i=0; i<liste.length; i++){
if(liste[j]!=null){
//ausgeben
}else{
//liste ist zuende, ab hier ist alles mit null gefüllt
break;
}
}
dann ist das zumindest nicht so komisch verschachtelt...
erstmal: bitte code-tags verwenden. Im Forum herrscht im moment leider wegen dem Umzug das totale chaos, aber dennoch bitte ich nächstes mal den code in code-tags der Gestalt
[€ODE]
//mein code
[/€ODE]
einzuschließen (mit C statt €, versteht sich). Thx.
Also, für den Anfang einige bemerkungen:
Code:
String[] names = {};
diese variable wird doch gar nicht verwendet oder? Da sollten doch auch Warnungen raustropfen, bzw jede normale IDE würde es gelb anstreichen => raus damit.
Code:
for(int i=0; i<=liste.length;i++){
sowas endet immer mit einer ArrayIndexOutOfBoundsException, weil der letzte Index gar nicht existiert. es soll stattdessen
Code:
for(int i=0; i<liste.length;i++){
heißen, sonst geht das kaputt. Das kommt an einer weiteren stelle vor: dort auch korrigieren.
So, und was hast du denn hier gemacht?
Code:
if(liste[j]!=null){
}
welchen Sinn soll so eine Konstruktion überhaupt erfüllen? Die kann doch prinzipiell niemals etwas machen.
Es sollte ja gegen NullPointerExceptions helfen. Wann fliegt eine NullPointerexception? Wenn du irgendwo auf ein null zugreifst, und versuchst damit irgendwas zu machen. Etwa
Code:
null.length(); //es gibt immer exception, was sonst...
genauso wie in dem konkreten Fall:
Code:
liste[j].length(); //es gibt exception wenn liste[j]==null ist
genau das sollte die von mir hingeschriebene if-konstruktion verhindern. Also nochmal:
Code:
if(liste[j]!=null){
liste[j].length; //<-Hier ist das element garantiert nicht null, also ist alles oK
}
Im hinblick auf den gesammten code erscheint mir sowas aber allgemein weniger geeignet: du schachtelst da zuviel, if in schleifen, schleifen in if's, das ist doch alles viel zu kompliziert. Unterteile das doch:
Code:
String[] liste=new String[langGenugEtwa100];
//EINGABE
for(int i=0; i<liste.length; i++){
//name einlesen
//falls "." dann break
//ansonsten zur liste hinzufügen, weitermachen
}
//AUSGABE
for(int i=0; i<liste.length; i++){
if(liste[j]!=null){
//ausgeben
}else{
//liste ist zuende, ab hier ist alles mit null gefüllt
break;
}
}
dann ist das zumindest nicht so komisch verschachtelt...