Java String mit Character(char) vergleichen

Zerstoerer

Lieutenant
Registriert
Okt. 2010
Beiträge
685
Guten Abend zusammen,

habe hier grade ein kurzes Problem. Ich möchte hier also einen String mit einem Character vergleichen:

if(g.charAt(i)==" " || g.charAt(i)=="#") {

Allerdings werden hier mehrere Fehler angezeigt, weiß einer warum?

Wäre dankbar für ein paar Antworten.
 
Also hier wäre der Fehler:

Morsebaum.java:29:23: incomparable types: char and java.lang.String
if(g.charAt(i)==" " || g.charAt(i)=="#") {
^
 
hallo

ein char wird mit einfachen Hochkommas bezeichnet
' ' sowas nicht " " so
 
Hallo,

Habe schon lange nicht mehr mit Java gearbeitet aber versuch mal folgendes:

statt:

if(g.charAt(i)==" " || g.charAt(i)=="#")

lieber:

if(g.charAt(i)==' ' || g.charAt(i)=='#')

Ein Char ist kein String

charAt() gibt ein Character zurück != String
 
Ich dachte man kann mit der Methode charAt den Wert eines Strings an einer bestimmten Stelle herausleden?
 
Und was ist Dir nicht klar? Die Fehlermeldung besagt doch ganz klar, dass Du die beiden Typen nicht miteinander vergleichen kannst. Also nimmt man hier immer char:

Code:
if(g.charAt(i)==' ' || g.charAt(i)=='#') {

Dass man Strings nicht mit dem == Operator, sondern mittels equals vergleichen sollte, weißt Du?
 
Kannst du auch.
Der Fehler liegt bei deinem Vergleich. Du nimmst mit den "" wieder einen String ;)
 
charAt() liefert einen Wert des primitiven Typen char. Diesen kannst Du nicht mittels == Operator mit einem Objekt des Typs String vergleichen, weil == auf Objekt-Identität prüft, aber ein String kann niemals ein char sein.
 
OK danken für eure Hilfe.
Kurze Frage hinterher: Kann ich die Länge eines String Arrays mit array.length oder array.lengt() herausfinden?
 
Warum denn nicht? Klar geht das.
Verstehe auch nicht warum du es nicht einfach getestet hast.
 
OK, nun (leider) noch eine Frage:

Warum kann ich dies nicht tun:

String e = ""+hilf.getObject();
c = (char) e;
return c;
 
was sagt der Compiler dazu?
erstmal ist es ohnehin sinnlos einen String in einen Character zu wandeln. Der besteht schließlich nur aus einem Zeichen.
Es gibt glaub ich sowas wie toCharArray() Damit kannst du dann einen String in ein Charfeld tun.
 
Weil man nicht zwischen Objekt-Typen und primitiven Typen casten kann.

Du solltest Dich noch etwas mit den Grundlagen befassen...
 
Ích habe eine private char ausgabe() methode. Deshalb kann ich keinen String ausgeben, sondern nur ein Character. In der zweiten Zeile : c = (char e) versuche ich den String in ein Character umzuwandeln. Dies funktioniert leider nicht.
Info: Der String selbst besteht nur aus einem einzigen Buchstaben. Diesen will ich als char zurückgeben. Nur wie?
 
Besteht der String denn nur aus genau einem char?

Ausgeben lässt sich ein String mittels Hilfsmethode:

Code:
void print(String rString) {
   for (int i = 0, size = rString.length(); i < size; i++) 
       ausgabe(rString.charAt(i));
}
 
Schau mal in deinen Startpost, als hättest du String.charAt() dort nicht schon selbst benutzt... :freak:
 
dann kannst du doch auch wieder mit deiner charAt() Methode arbeiten.
An Position 0 ist dann ja dein Zeichen im String
 
Der String besteht doch nur aus einem Zeichen, dass in einen char umgewandelt werden soll.

Edit: Ok das werde ich mal versuchen

@ Alchemist: Wie sollte ich das denn mit charAt() machen?
 
Zuletzt bearbeitet:
Zurück
Oben