Java if / array

jochen1001

Lieutenant
Registriert
Jan. 2008
Beiträge
658
Hi folgendes Problem

public static void main(String[] args) {
char[] buchstaben = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'};

for (int i = 0; i < buchstaben.length; i++){

if(buchstaben=='E' ){

}
}

}


Hab nen Array und möchte das "E" durch ne Zahl oder nen anderen Buchstaben ersetzen. Was muss da in die if Bedingung rein. Bei mir zeigt er immer nen fehler an. Benutze Eclipse
 
Zuletzt bearbeitet:
Hallo,

is schon einige Zeit her das ich mit Java was gemacht habe, aber ist es nicht so das man bei Char und String .equals nehmen muss anstatt == ??

Bitte nicht totschlagen falls es falsch is ;)!!!!

Gruß

EDIT :

oh da war ich wohl zu lahm... aber ähm hat ich unrecht? würd ich noch gern wissen wenns geht :)
 
Zuletzt bearbeitet:
bin neuling , kann dir die Frage leider net beantworten, aber als ich in Google gesucht habe, bin ich auch auf dieses Equal gestoßen - könnt also sein ;)

der code oben stimmt jetzt , hab ihn geändert

kannst du mir vll sagen, wie ich dem programm sag, dass es den Buchstaben E in 3 ersetzen soll? -> in die if {} muss dass dann rein

bin da hilflos ,
 
in die if abfrage müsstest du einsetzen

char = '3';

sollte so funktionieren, hab grad nichts zum proggen zur hand sonst würd ich das kurz testen....
 
also anstatt char den namen des arrays richtig?

bei mir gibt er anstatt dann der zahl, nen kasten mit 4 kleinen zahlen: 0 0 0 3
 
Hi,

wenn ich es richtig verstanden habe, dann liegt das Problem darin, dass du ein Array mit chars hast und versuchst eine Zahl (int) reinzupacken. Das ist natürlich möglich, da es sich aber hier um ein char-Array handelt konvertiert (type casting) Java die Zahl zu einem char. Leider kann die Ausgabe mit dem Zeichen nichts anfangen und gibt daher [] (Kasten) aus.
Wenn du aber die Array-Elemente bei der Ausgabe nach int konvertierst, dann wirst du sehen, dass die 3 drin ist:
System.out.println((int) buchstaben);

Ich hoffe das hilft.
 
fattrats Vorschlag passt schon.

Code:
     public static void main(String[] args)
                    {
                        char[] buchstaben = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'};

                        for (int i = 0; i < buchstaben.length; i++)
                        {

                            if(buchstaben[i]=='E' )
                            {
                                buchstaben[i] = '3';
                            }
                        }
                        
                    }

Das soll doch wohl hoffentlich kein leetspeak-Generator werden. :evillol:
 
Mh, wenn er es so ausgibt, dürfte egal ob der Char ein E oder eine 3 is normal ausgeben oder? Weil es ja ein Char is!

System.out.println(buchstaben);
 
Hmm, hab ich da etwas verwechselt? Bei mir kommt definitiv dieser Kasten, wenn das E durch die 3 ersetzt wird und ich System.out.println(buchstaben); für die Ausgabe nutze. Es kann vielleicht daran liegen, dass ich die Eclipse-Konsole benutze.
Chars sind jeweils 16Bit groß und umfassen den Wertebereich U+0000 bis U+FFFF (Unicode-Zeichen). Dazu zählen auch u.a. unzählige Sonder- und Steuerzeichen.
Siehe hier.

edit:

Alles klar, mein Fehler. Ich habe die Hochkommata um die 3 vergessen.
 
Zuletzt bearbeitet:
Würde mich mal interessiern ob Jochen geholfen wurde etc. und wie weit er so mit Java gekommen ist?

Da ich Studium bedingt auch wieder anfang müsste mich ins Programmieren zu stürzen!
 
naja, net so wirklich

public static void main(String[] args) {
char[] buchstaben = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'};

for (int i = 0; i < buchstaben.length; i++){

if (buchstaben == 'E'){
buchstaben = 3;
}

if(buchstaben == 'G'){
buchstaben = 6;
}
}
System.out.println(buchstaben);
}


}

console gibt das aus:
ABCDFHIJ
eclipse gibt bei mir n error wenn ich System.out.println(buchstaben) einbaue.
 
Code:
public static void main(String[] args) {
char[] buchstaben = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J'};

for (int i = 0; i < buchstaben.length; i++){

if (buchstaben[i] == 'E'){
//falsch:  buchstaben[i] = 3;
buchstaben[i] = '3';
}

if(buchstaben[i] == 'G'){
//falsch:  buchstaben [i] = 6;

buchstaben [i] = '6'; // <--- so muss es richtig lauten
}
}
System.out.println(buchstaben);
}

}


Also den Fehler hättest du schon längst finden müssen.
 
Zuletzt bearbeitet:
Zurück
Oben