Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Palindrom » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen Palindrom
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
gg_
Mitglied


Dabei seit: 06.12.2014
Beiträge: 30

Palindrom Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Meine Frage:
ich versuche grad ein Programm zu schreiben,der überprüft ob ein Wort vorwärts und rückwerts gelesen ein Palindrom ist. Ich komme irgenwie nicht wieter, ich hoffe ihr könnt mir paar Vorschläge geben

Meine Ideen:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
public class Palindrom {

	public static void main(String[] args) {

		// TODO Auto-generated method stub

		String wort = "otto";
		int laenge =wort.length();
		char rueckwerts;
		
		for (int i =3; i>=0; i--)
		{
			rueckwerts=wort.charAt(i);
			
			if(wort.equals(rueckwerts))
			{
				System.out.println("Palindrom gefunden");
			}
			else{
				System.out.println("Kein Palindrom ");
			}
			
			
		}
		
	}

}


16.12.2014 12:32 gg_ ist offline Beiträge von gg_ suchen Nehmen Sie gg_ in Ihre Freundesliste auf
gg_
Mitglied


Dabei seit: 06.12.2014
Beiträge: 30

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

ich finde das mit char rueckwerts , das stimmt irgendwie nicht
16.12.2014 12:47 gg_ ist offline Beiträge von gg_ suchen Nehmen Sie gg_ in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Ich habe dir mal zwei verschiedene Ansätze geschrieben, wie du testen kannst, ob ein Palindrom vorliegt.
Wenn nicht klar ist, warum das funktioniert, einfach nachfragen.
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
private static String reverse(String s) {
	StringBuilder result = new StringBuilder();
	for (int i = s.length() - 1; i >= 0; i--) {
		result.append(s.charAt(i));
	}
	return result.toString();
}

private static boolean isPalindrom(String s) {
	for (int i = 0; i < s.length() / 2; i++) {
		if (s.charAt(i) != s.charAt(s.length() - i - 1)) {
			return false;
		}
	}
	return true;
}

public static void main(String[] args) {
	String[] testwords = {"otto", "radar", "reliefpfeiler", "fbdszifnsuid"};
	for (String word : testwords) {
		//if (isPalindrom(word)) {
		if (word.equals(reverse(word))) {
			System.out.println(word);
		}
	}
}


__________________
Syntax Highlighting fürs Board (Link)
16.12.2014 13:02 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
gg_
Mitglied


Dabei seit: 06.12.2014
Beiträge: 30

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
import java.util.Scanner;


public class Palindrom {

	public static void main(String[] args) {
		
		Scanner in = new Scanner(System.in);
		
		System.out.println("************************");
		System.out.println("********Palindrom*******");
		System.out.println("************************");
		System.out.println("Geben Sie ein Wort ein ");
		
		String wort, rueckwerts= "";
		wort = in.nextLine();
		
		int laenge = wort.length();
		
		
		
		in.close();
		
		for(int i = laenge-1;i>=0;i--)
		{
[B]			rueckwerts += wort.charAt(i);
[/B]			
			
			
			if(wort.equalsIgnoreCase(rueckwerts))
			{
				System.out.println("Achtung Palindrom gefunden");
				
			}else{
				System.out.println("Leider ist das Wort kein Plaindrom");
				
			}
			
			
			
			
		}

        }
}






Z.b wenn wir das wort Otto nehmen kommt als

Ausgabe:

Leider ist das Wort kein Palindrom
Leider ist das Wort kein Palindrom
Leider ist das Wort kein Palindrom
Achtung Palindrom gefunden

Meine Frage: wie kann ich diese char abfangen(also ich glaub das Problem liegt bei der for schleife) damit bei der Ausgabe entweder einmal "Leider ist das Wort kein Palindrom" oder "Achtung Palindrom gefunden"?
16.12.2014 18:35 gg_ ist offline Beiträge von gg_ suchen Nehmen Sie gg_ in Ihre Freundesliste auf
eulerscheZahl eulerscheZahl ist männlich
Foren Gott


Dabei seit: 04.01.2013
Beiträge: 2.859

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Es liegt daran, dass du prüfst, ob das umgedrehte Wort gleich dem ursprünglichen ist, während du noch dabei bist, das Wort umzudrehen.
Es wird also geprüft: "o" == "otto", "ot" == "otto", "ott" == "otto", "otto" = "otto".
Somit ist auch die Ausgabe verständlich.
Zieh die Prüfung aus der Schleife raus, dann geht es auch wie gewünscht.

__________________
Syntax Highlighting fürs Board (Link)
16.12.2014 18:50 eulerscheZahl ist offline Beiträge von eulerscheZahl suchen Nehmen Sie eulerscheZahl in Ihre Freundesliste auf
gg_
Mitglied


Dabei seit: 06.12.2014
Beiträge: 30

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

ich hab es gelöst
16.12.2014 18:52 gg_ ist offline Beiträge von gg_ suchen Nehmen Sie gg_ in Ihre Freundesliste auf
gg_
Mitglied


Dabei seit: 06.12.2014
Beiträge: 30

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:

import java.util.Scanner;


public class Palindrom {

	public static void main(String[] args) {
		
		Scanner in = new Scanner(System.in);
		
		System.out.println("************************");
		System.out.println("********Palindrom*******");
		System.out.println("************************");
		System.out.println("Geben Sie ein Wort ein ");
		
		String wort, rueckwerts= "";
		wort = in.nextLine();
		
		int laenge = wort.length();
		
		
	
		
		for(int i = laenge-1;i>=0;i--)
		{
			rueckwerts += wort.charAt(i);
			
			
			
			
		}
		
		if(wort.equalsIgnoreCase(rueckwerts))
		{
			System.out.println("Achtung Palindrom gefunden");
		}else {
			System.out.println("Kein Palindrom");
		}
		
		
		
		
		
		
		
		
		
		in.close();
		
		
	}
}
		
16.12.2014 18:53 gg_ ist offline Beiträge von gg_ suchen Nehmen Sie gg_ in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Praktische Informatik » Palindrom