Palindrom

Derber02

Mitglied
hallo leute,
ich hoff ihr könnt mir ein wenig weiterhelfen..
ich will eine Funktion erstellen die prüft ob sich eine Zeichenfolge(String) um einen Palindrom handelt
Mein Code Bisher:
Java:
	public static void main(String[] args) {

		String palin1[] = {"a","n","n","a"};

		System.out.println("Es ist ein Palindrom " + wortPalindrom(palin1));
	}

	public static boolean wortPalindrom(String palin1) {

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

			
			if (palin1[i] == palin1(palin1.length() - 1-i))
				return true;
		}
		return false;
	}	


}

aber bitte keine zeilen wie "if (s.charAt(i) != s.charAt(s.length()-1 - i)) return false;" weil sowas hatte ich noch nicht und will nicht sowas "schweres" einsetzen. ich hoff ihr könnt mir helfen
 
H

hüteüberhüte

Gast
Schleife, charAt und == mal angucken, die Frage gab es aber schon hunderte mal!
 

Derber02

Mitglied
Ja genau sorry dass ich mich so spät melde ..
dieses
charAt
wie funktuniert das?
ich hab jetzt das Forum durchsucht und finde ehrlich gesagt überall das gleiche mit dme charAt aber ich weiß nicht was das bringen soll ..
 

Phash

Top Contributor
das bringt dir den Character at this position.
also das Zeichen an der Stelle.

du gehst das Wort von vorn und hinten zeichenweise durch und vergleichst ...
 

njans

Top Contributor
Ein String ist eine Zeichenkette: "Hallo"
Der String besteht auch Characters (chars). Mit charAt kriegst du den char an der Stelle.
Also bei "Hallo" gibt es bei charAt(0) einen Character 'H' zurück.
 

deetee

Aktives Mitglied
Erkennung von Wort- und Satzpalindromen würde ich so implementieren:
Java:
public final class TextUtils {

	public static boolean isPalindrome(String target) {
		if (null == target) {
			return false;
		}
		return target.toLowerCase().equals(
				new StringBuilder(target).reverse().toString().toLowerCase());
	}
	
}
 

Derber02

Mitglied
Java:
if (null == target) {
            return false;
        }
        return target.toLowerCase().equals(
                new StringBuilder(target).reverse().toString().toLowerCase());
    }
kannst du mir das vielleicht erklären?
ich versteh das eigentlich gar nicht .. ist das normal dass ich dabei probleme hab? bisher musste ich eigentlich nur 1-2 h Stunden googlen und tutorial schauen um die "hausaufgaben" hinzukriegen.. doch diesmal klappt fast nichts ?
 
B

bone2

Gast
Die Lösung vergleicht einfach den eingebenen String mit einer umgedrehten Version des selben Strings. Stringbuilder ist da nur eine Hilfe, da String von Haus aus kein reverse() hat.

Achja und les das was Hüte gesagt hat. Man kann Strings nicht mit == vergleichen.
Machs chars drauß, die können das.
 

Derber02

Mitglied
Ich weiß nicht was los ist aber irgendwie komm ich gar nicht mehr zurecht
Java:
Scanner scanner= new Scanner(System.in);
		  char text2 = nextLine();
wie tu ich denn bitte einen char einlesen?
mit nextLine funktuniert es nicht
die einfachste art ist es doch mit dem scanner oder?
 
B

bone2

Gast
nextLine() gibt dir einen String. Den kannst du dann mit toCharArray() in ein chararray umwandeln und mit einer For-Schleife die von 0 bis länge/2 geht immer char n mit char length-n vergleichen
 
H

hüteüberhüte

Gast
Ich weiß nicht was los ist aber irgendwie komm ich gar nicht mehr zurecht
Java:
Scanner scanner= new Scanner(System.in);
		  char text2 = nextLine();
wie tu ich denn bitte einen char einlesen?
mit nextLine funktuniert es nicht
die einfachste art ist es doch mit dem scanner oder?

Ich würde immer lieber mit einem BufferedReader nehmen:

Java:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 * @author hütte
 */
public class Palindrom {

    public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        System.out.println("Dieses Programm prueft auf Palindromitaet");
        while (true) {
            System.out.print("Bitte Wort eingeben: ");
            String s = reader.readLine(); // evtl. .toLowerCase()
            if (s.isEmpty()) {
                break;
            }
            System.out.println(palindrom(s) ? "ist palindromisch" : "ist nicht");
        }
        System.out.println("Danke, das Sie dieses Programm verwendet haben");
    }

    public static boolean palindrom(String s) {
        for (int i = 0, j = s.length() - 1; i < j; i++, j--) {
            if (s.charAt(i) != s.charAt(j)) {
                return false;
            }
        }
        return true;
    }
}

Kein Copyright oder so auf dieses Programm, du kannst es gerne kopieren wenn du möchtest.^^
 

Derber02

Mitglied
vielen dank erstmal^^
nur weiß ich nicht was du mit dieser Zeile meinst
Java:
 if (s.isEmpty()) {
isEmpty
ist das wie so ein vergleichsobjekt( < ; > ; = ; == )
 
M

Marcinek

Gast
Hallo,

bei so einer Frage kann ich nur folgendes sagen

1) API schauen, oder googeln
2) Grundlagen anschauen

Denkst du, dass du der erste Mensch auf der Welt bist, der ein String auf ein Palindrom hin untersucht?

Bisschen Eigeninitiative. In der Klausur hast du auch kein Forum.

Gruß,

Martin
 
H

hüteüberhüte

Gast
isEmpty() macht intern wohl so etwas wie
Code:
length() == 0
. Weil/wenn die API es anbietet, sollte man Methoden mit sprechendem Namen nehmen

Grüßle
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Größtes Palindrom Produkt aus zwei dreistelligen Zahlen Java Basics - Anfänger-Themen 60
A Palindrom Java Basics - Anfänger-Themen 3
sserio Größtes Palindrom-Produkt Programm funktioniert nur halb Java Basics - Anfänger-Themen 23
H Palindrom ermitteln Java Basics - Anfänger-Themen 21
N palindrom erkennen Java Basics - Anfänger-Themen 3
H Harshad-Zahl (Nivenzahl) und Palindrom überprüfen Java Basics - Anfänger-Themen 2
L Palindrom in zweidimensionalem Array Java Basics - Anfänger-Themen 16
B Palindrom Test mit Junit Java Basics - Anfänger-Themen 23
T Auf Palindrom überprüfen Java Basics - Anfänger-Themen 10
R Best Practice Palindrom in einem Text finden Java Basics - Anfänger-Themen 18
L In Javakara Palindrom erkennen. Java Basics - Anfänger-Themen 9
P Programm Hilfe Palindrom Java Basics - Anfänger-Themen 6
C Bei der LinkedList auf Palindrom überprüfen Java Basics - Anfänger-Themen 4
Y Rekursiv Palindrom herausfinden Java Basics - Anfänger-Themen 5
C Palindrom im array Java Basics - Anfänger-Themen 5
R Palindrom eines int-Arrays berechnen Java Basics - Anfänger-Themen 14
H Palindrom Programm Java Basics - Anfänger-Themen 8
K Palindrom Test Java Basics - Anfänger-Themen 9
C Überprüfen auf Palindrom Java Basics - Anfänger-Themen 12
P Palindrom Java Basics - Anfänger-Themen 10
R In einem Palindrom 2 Buchstaben vergleichen Java Basics - Anfänger-Themen 16
H Palindrom Java Basics - Anfänger-Themen 7
NoXiD Auf Palindrom Prüfen Java Basics - Anfänger-Themen 9
M Palindrom mit Groß & kleinbuchstaben Java Basics - Anfänger-Themen 19
M Palindrom Test mit Char-arrays! Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben