Datentypen Probleme mit Char bei meinem 1. Spiel

xVentura

Aktives Mitglied
Hallo ich habe folgendes Problem:

Java:
....

z=IOTools.readChar(NameSpieler1+" ist am Zug, auf welches Feld wollen Sie setzen? ");
    System.out.println("\n" );
    //Wurde Feld A gewählt?
    if (z=='a' ) {
       //Ist das Feld noch nicht belegt worden? Würde bedeuten, dass das Feld noch 'a' ist Inhalt von a1
       if ( z==a1 ) {
          //Habe ich schon selber drauf gespielt?
          if (a2==0) {
             a1=Spieler1;
             a2=a2+1;
          }
       }
       else {
         do {
            z=IOTools.readChar("Tut mir leid Sie koennen nicht auf dieses Feld setzen, es ist schon belegt! \n"+NameSpieler1+" ist nochmal dran, auf welches Feld wollen Sie dann setzen? ");
            System.out.println(" ");
         } while (z=='a'  );
       }
    }

....



es gibt das Spielfeld a, der Spieler1 (z) will aber auf ma spielen! ma gibt es aber nicht, das programm frägt dann erst ab ob es m gibt und dann ob es a gibt aber es soll fragen ob es "ma" gibt und nicht die buchstaben einzelt sozusagen als Char Zeichenkette.. ich hab das mal gegoogelt aber nichts gutes gefunden

bitte um hilfe

MfG
 
man bräuchte noch bissel mehr Code, denn die Fehlermeldung "Dieses Feld existiert nicht" sieht man in dem Codeausschnitt nicht, das wäre eventuell nützlich um zu sehen was in dem Anweisungszweig noch alles passiert.
 
Java:
                char a='a';
		char b='b';
		String ab=a+""+b;
		System.out.println(ab);
		System.out.println(ab.equals("ab"));

Ausgabe:
ab
true

wenn ich das richtig verstehe hast du 2 Chars, die du zusammen abfragen möchtest? also so?
 
Java:
if (z!='a') {
      if (z!='b') {
        if (z!='c') {
          if (z!='d') {
            if (z!='e') {
              if (z!='f') {
                if (z!='g') {
                  if (z!='h') {
                    if (z!='i') {
                      System.out.println("Dieses Feld exsistiert nicht!");
                      ZugSpieler1(NameSpieler1,NameSpieler2,beende);
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
 
Java:
if (z!='a')&&(z!='b')&&.... {


is da wohl die bessere Variante
 
Zuletzt bearbeitet:
Schon sowas wie
Java:
if (String#indexOf(zielZeichenkette) != -1) // do something
probiert?
 
Zuletzt bearbeitet:
dann les doch statt einem Char den ganzen String ein und vgl. den dann

laut der API gibts bei dem IOTools.readString...
 
Zuletzt bearbeitet:
habe fast das komplette Programm mit Char´s und wenn ich das jetzt in String änder kann ich es nicht mit den anderen Char´s "vergleichen" bsp.: if (a==b) a ist string, b ist ein char. Ich hatte alle Chars in Strings geändert jedoch ging mein Programm dann nicht mehr... Kam keine fehlermeldung aber es funkte nicht mehr und ich fand den fehler nicht. Als ich alle Variablen wieder in chars änderte ging es wieder und ich machte mit dem programm weiter...
 
Zuletzt bearbeitet:
siehe mein Beispiel oben equals(...) zählt aber nur bei Strings

bei chars == also zwei chars miteinander
 
Zuletzt bearbeitet:
Wenn du zwei Variablen vom Typ String hast, also Zeichenketten wie: "Hallo" und "Guten Tag" dann kannst du diese beiden Strings nur mit der Methode equals() vergleichen.

Hier mal ein Beispiel:
Java:
String text1 = "Hallo";
String text2 = "Hallo2";

boolean gleich; 
gleich = text1.equals(text2); // text1 und text2 werden verglichen und wenn sie gleich sind wird "true" zurückgegeben.

System.out.println(gleich);
 
Java:
String a = "Testzeichenkette";
if (a.equls('b')) // do whatever you are willing to
Sowas in der Richtung...

Um auf dein Problem zurückzukommen:
Java:
if (a.indexOf('b') != -1) // Zeichenkette beinhaltet kein b
else // Zeichenkette beinhaltet ein b
 
Zuletzt bearbeitet:
ich verstehe so gut wie nichts was ihr im moment posted ^^ erstmal muss ich mich dafür bedanken das ihr mir so motiviert helfen wollt, danke! 🙂

ich möchte ein Char mit einem String vergleichen z.B:

Java:
char a1='a';
String z;
String ZeichenSpieler1;

System.out.println( a1 + b1 + c1 ....) // Spielfeld

ZeichenSpieler1=IOTools.readString("Welches zeichen?");
z=IOTools.readChar("Welches feld?");

if (z=="a") {

   a1=ZeichenSpieler1;
}

if (z!='a') {
s.o.p("Feld exsistiert nicht");
}
 
Zuletzt bearbeitet:
vll. nochmal zur Hilfe

Java:
z!='a'

geht nicht muss in diesem Fall mit indexOf(...) passieren da du hier ein String mit einem Char vergleichst ansonsten siehe Beitrag unter mir 😉

ps. da schmeißt mir Eclipse allein schon den Fehler 😉
 
Zuletzt bearbeitet:

Neue Themen


Zurück
Oben