vorne weg.. Ich bin totaler Java Anfänger ^^.
Von der Schule aus müssen wir mit der Programmiermaske BlueJ arbeiten.
Und mein Problem sieht wie folgt aus:
Ich habe einen Constructor:
Java:
[...]publicWort(String wort){String[] tempArrayS = wort.split("");ArrayZeichen=newZeichen[tempArrayS.length];System.out.println("");for(int i =1; i < tempArrayS.length; i++){if(tempArrayS[i].equals(" ")){System.out.println("Fehler! Es wurde min. ein Leerzeichen eingegeben!");System.out.println("Vorgang wurde abgebrochen, da kein Wort eingegeben wurde.");System.out.print("Tipp: Vermeide Leerzeichen!");//System.exit(0);}[...]
der Rest ist nicht wichtig.
Wenn ein Fehler auftritt, sollte die Erstellung eines Objekts abgebrochen werden.
Leider lösche ich mit System.exit(0) alle bisher erstellten Objekte, was nicht das Ziel ist...
Edit: Gibt es hier nicht die möglichkeit, o.ä. zu benutzten?
[...]publicWort(String wort){String[] tempArrayS = wort.split("");ArrayZeichen=newZeichen[tempArrayS.length];System.out.println("");for(int i =1; i < tempArrayS.length; i++){if(tempArrayS[i].equals(" ")){String errorMsg ="Fehler! Es wurde min. ein Leerzeichen eingegeben!"+"Vorgang wurde abgebrochen, da kein Wort eingegeben wurde."+"Tipp: Vermeide Leerzeichen!";//Werfe eine Exception, im Falle eines Fehlers.thrownewDeineException(errorMsg);}[...]
Beachte das, du beim Aufruf des Konstruktors, eine mögliche Exception abfängst.
oha xD
ich versteh leider nichts..
das ist leider i-wie viel zu hoch für mich xD...
Ich schreib mal die komplette Klasse rein:
[Java]
class Wort{
public Zeichen [] ArrayZeichen;
public int wortlaenge;
public Zeichen erster;
public Wort(String wort){
String [] tempArrayS = wort.split("");
ArrayZeichen = new Zeichen[tempArrayS.length];
System.out.println("");
for (int i = 1; i < tempArrayS.length; i++){
if (tempArrayS.equals(" ")){
System.out.println("Fehler! Es wurde min. ein Leerzeichen eingegeben!");
System.out.println("Vorgang wurde abgebrochen, da kein Wort eingegeben wurde.");
System.out.print("Tipp: Vermeide Leerzeichen!");
//System.exit(0);
break;
}
else {
if (tempArrayS.length == i){
ArrayZeichen = new Zeichen(tempArrayS.charAt(0));
}
else if((tempArrayS.length <= 2) || (i == 1)){
ArrayZeichen[1] = new Zeichen(tempArrayS[1].charAt(0));
}
else{
ArrayZeichen = new Zeichen(tempArrayS.charAt(0));
ArrayZeichen[i-1].naechster = ArrayZeichen;
}
}
System.out.print(ArrayZeichen.bezeichner);
}
erster = ArrayZeichen[1];
wortlaenge = tempArrayS.length-1;
}
public int wortlaengeGeben(){
return wortlaenge;
}
public Zeichen erstesZeichenGeben(){
return erster;
}
public Zeichen test(){
return erster.naechsterGeben();
}
public Zeichen zeichenGeben(int position){
if ((position<1) || (position>wortlaenge)){
return null;
}
else {
Zeichen k = erster;
for (int i = 1; i <= position-1; i++){
k = k.naechsterGeben();
}
return k;
}
}
Nenn mich nervig und dumm..
Aber ich versteh das einfach nicht. Auch nicht die Erklärungen auf der Seite...
Es wär echt geil, wenn du es im Script einfügen könntest.. Vielleicht versteh ich es danach.
Sry, dass ich so nerve.. Aber das ergibt für mich i-wie alles keinen Sinn xD