Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo, ich möchte ein Programm schreiben, um zu prüfen ob das eingegebene Wort ein PAlindrom oder nicht ist.

Habe das Programm fertig in C++ aber da ich jetzt seit kurzem in JAva umgestiegen bin, wolte ich jetzt meine ganz alten Programme nochmal in Java verwirklichen.

Wer kann mir helfen.?

Irgendwas ist mit dem Einlesen falsch... Er liest ein String ein. kann man das in ein String[] umwandeln =?

String pal[], b1[],b2[];

try

{

BufferedReader MyIn = new BufferedReader(new InputStreamReader(System.in));

System.out.println("Überprüfung auf Palindrom !");

System.out.print("Eingabe des Palindroms:");

pal = MyIn.readLine();

int l = pal.length();

int m = l % 2;

int hl = (l/2);

System.out.println("Modulo: " + m + " Hälfte: " + hl );

for(int i = 0;i<=m;i++)

{

b1[1]=pal;

b2[1]=pal[l-1];

if(b1[1] = b2[1]){

l=l-1;}

if(b1[1]!=b2[1]){System.out.println("\n\n\n Es ist kein Palindrom!\n")

}

System.out.println("Das Wort " + pal + " ist ein Palindrom !!");

}

catch (IOException e){

System.out.println("IO-Fehler");

jetzt dir Fehler ! (kommen wohl alle durch das [] Array)

Exception in thread "main" java.lang.Error: Unresolved compilation problems:

Type mismatch: cannot convert from String to String[]

Cannot invoke length() on the array type String[]

Type mismatch: cannot convert from String to boolean

Syntax error, insert "}" to complete ClassBody

wäre nett, wenn mir jmd helfen könnte

Dein Fehler liegt in der Zeile 'pal = MyIn.readLine();'.

Die Variable pal ist bei dir ein String-Array, die Methode readLine() hat aber einen Rückgabewert vom Typ String. Deswegen kommt bei dir die Fehlermeldung.

Wenn du jetzt jedoch deine Variable pal zu einem Typ String machst, wirste spätestens in deiner for-Schleife auf die nächsten Probleme stoßen. Da du dort ja auf die Variable pal wie auf ein Array zugreifst.

Ich verstehe aber ehrlich gesagt auch noch nicht, warum du überhaupt String-Arrays brauchst. Weil du benutzt in deiner for-Schleife die Arrays b1 und b2 auch nur so, als wenn es Variable wären, in dem du einfach nur auf die 2. Stelle im Array zugreifst.

Ich denke, es wäre einfacher, wenn du entweder das eingegebene Wort als einfachen String (kein Array!) einliest und das dann in ein char-Array umwandelst (siehe String#toCharArray()), die beiden Variablen b1 und b2 in Variablen vom Typ char umwandelst, und dann deinen Vergleich mit den Typen durchführst.

Oder du wandelst alle 3 Variablen in den Typ String um und benutzt bei deinem String pal, die vorhandenen String-Funktionen um dir einzelne Buchstaben rauszuschneiden. Dann solltest du jedoch beachten, dass man Variablen vom Typ String nicht mit '==' sondern mit der Methode equal() verleichen sollte. Da '==' die Referenzen vergleich und equal() den Inhalt.

Bearbeitet von Dragon8

ja ok habte alles in string umgewandelt... jetzt bin ich beim

herauskopieren, aber wie lautet denn die richtige Syntax von der

Methode .getChar ????

Inwieweit Syntax?

Wenn du jetzt die Methode, toCharArray(), meinst, die ich dir verlinkt habe, legst du dir einfach ein Array vom Typ char an und weist diesem den Rückgabewert der Funktion zu.

Dann hast du ein Array in dem an jeder Position der passende Buchstabe aus deinem String steht und kannst dann ganz einfach per Schleife drüber laufen und die Buchstaben vergleichen.

na egal habs jetzt anders gemacht.

Welce Datentypen kann x.equals(y); alles vergleichen ?

BufferedReader MyIn = new BufferedReader(new InputStreamReader(System.in));

System.out.println("Überprüfung auf Palindrom !");

System.out.print("Eingabe des Palindroms:");

pal = MyIn.readLine();

int l = pal.length();

int m = l % 2;

int hl = (l / 2);

System.out.println("Modulo: " + m + " Hälfte: " + hl );

char[] c = pal.toCharArray();

System.out.println("_________________________________________________________");

for(int i = 0;i<=hl;i++){

l=l-1;

if( c.equals(c[l]) ){

System.out.println(c);

}

}

System.out.println("Das Wort " + pal + " ist ein Palindrom !!");*/

Cannot invoke equals(char) on the primitive type char

Syntax error on tokens, delete these tokens

Die Methode equal() kann alle Objekte vergleichen. Bei dir ist jetzt nur das Problem, das char ein primitiver Datentyp ist, und kein Objekt, deswegen gibt es dort die Methode equal() auch nicht. Primitive Datentypen kannst du ganz einfach mit '==' vergleichen.

Deswegen meinte ich ja, hättest du alles zu nem String gemacht, wäre die Methode equal() die richtige Variante gewesen, da Strings nunmal Objekte sind.

ja ich weiss schon wie du meinst aber ... mh.... ok.... kannst mal deine icq nummer geben =?

würde gerne paar dinge mit dir austauschen !

wäre das möglich ==?

wie bekomme ich ein Buchstabe aus einem String an einer bestimmten Stelle heruaskopiert und mit einem anderen herauskopierten Buchstaben vergleichen =?

in c++ = strcpy(x;y);

aber wie ist das in Java direkt

Danke schön Dragon . . .:-)

:upps

Wie wäre es mit

1) erlernen der Grundlagen (die scheinen komplett zu fehlen)

2) "studieren" der Javadoc

3) verwenden einer IDE mit Codecompletion

4) Fleiß, Eiffer und der Fähigkeit google zu bedienen

?

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.