|
|
Source 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 |
import java.util.Stack;
public class Palindrom {
char []arr; // Hilfsarray
Stack<Character> meinStack = new Stack<Character>(); // Stack zum vergleichen
public Palindrom(String wort){ // Constructor
arr = wort.toCharArray(); // zerlegt eingegebenen String in Chars und legt es in das Hilfsarray
for( int i=0; i < arr.length; i++){ // for schleife durchläuft das array
//und legt einzelne Chars in den Stack
meinStack.push(arr[i]);
}
}
//public char[] stringToArrays(String wort){
//char[] arr = wort.toCharArray();
//return arr;
//}
// Methoden Stummgeschalten da in Constructor zusammengefasst
//public void pushStack(char[] arr){
//for( int i=0; i < arr.length; i++){
//meinStack.push(arr[i]);
//}
//}
public boolean vergleichen(Stack<Character> meinstack, char[] arr){
int i=0; // Methode vergleicht die einzelnen Chars des Stacks mit denen des Arrays
while(meinstack.pop().equals(arr[i]) & i<arr.length){
i++;
}
if (meinstack.empty()){ // Falls Stack empty muss Palindorm sein da sonst abbruch
// desahalb ausgabe "Das wort ist ein Palindrom"
System.out.println("Das wort ist ein Palindrom");
return true;
}
else // Falls Stack nicht leer kein Palindrom deshalb "Das wort ist kein Palindrom"
System.out.println("Das wort ist kein Palindrom");
return false;
}
}
|
|
|
Source code |
1 2 3 4 5 6 7 8 9 10 |
public class Palindromtest {
public static void main (String []args){
String wort= Console.readString("Bitte geben sie ein wort ein !");
Palindrom String = new Palindrom(wort);
}
}
|
|
|
Source code |
1 |
String.vergleichen(meinstack, arr); |
|
|
Source code |
1 |
String.vergleichen(otto, otto); |
|
|
Source code |
1 |
String.vergleichen(meinstack, arr); |
|
|
Java Quellcode |
1 2 3 4 |
...... while(meinStack.size()>0) { if(meinStack.pop().equals((arr[i]))) { ..... |
Hallo,
Du brauchst Deiner vergleichen-Methode nichts übergeben.
In Deinem Konstruktor werden Dein Stack und dein Array ja erzeugt,
und stehen zur Verfügung.
Die while-Schleife würde ich anders aufbauen:
![]()
Java Quellcode
1 2 3 4 ...... while(meinStack.size()>0) { if(meinStack.pop().equals((arr[i]))) { .....
Allerdings ist dann z.B "MaoaM" ein Palindrom, aber "Maoam" ist keins..
|
|
Source code |
1 2 3 4 5 6 7 |
public Palindrom(String wort){ // Constructor
arr = wort.toCharArray(); // zerlegt eingegebenen String in Chars und legt es in das Hilfsarray
for( int i=0; i < arr.length; i++){ // for schleife durchläuft das array
//und legt einzelne Chars in den Stack
meinStack.push(arr[i]);
}
}
|
|
|
Source code |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
public boolean vergleichen(){
int i=0; // Methode vergleicht die einzelnen Chars des Stacks mit denen des Arrays
while(meinStack.empty())
i++;
// durchläuft den Stack und vergleicht es mit den Chars des Arrays
if (meinStack.pop().equals((arr[i]))){ // wenn die Gleich sind da ein Palindrom von hinten nach vorn und von vorn nach hinten
// die gleichen Chars besitzen muss so wird
// Ausgabe "Das wort ist ein Palindrom"
System.out.println("Das wort ist ein Palindrom");
return true;
}
else // Falls Chars nicht gleich mit denen des Arrays kein Palindrom deshalb "Das wort ist kein Palindrom"
System.out.println("Das wort ist kein Palindrom");
return false;
}
|
|
|
Source code |
1 2 3 4 5 6 7 8 9 |
public boolean vergleichen(Stack<Character> meinstack, char[] arr){
int i=0;
while([u]meinstack[/u].pop().equals(arr[i]) & i<arr.length){
i++;
}
if ([u]meinstack[/u].empty()){
System.out.println("Das wort ist ein Palindrom");
return true;
|
|
|
Java Quellcode |
1 2 3 |
.. if (meinStack.pop().toLowerCase().equals((arr[i].toLowerCase()))){ .. |
|
|
Source 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 56 57 58 59 |
import java.util.Stack;
public class Palindrom {
char[] arr; // Hilfsarray um String zu zerlegen
Stack<Character> meinStack = new Stack<Character>(); // Stack zum
// vergleichen
public Palindrom(String wort) { // Constructor
wort = wort.toLowerCase(); // wandelt kompletten String in Kleinbuchstaben um
// da sonst Fehler wenn Großbuchstaben im String vorkommen
arr = wort.toCharArray(); // zerlegt eingegebenen String in Chars und
// legt es in das Hilfsarray
for (int i = 0; i < arr.length; i++) { // for schleife durchläuft das
// array
// und legt einzelne Chars in den Stack
meinStack.push(arr[i]);
}
}
// public char[] stringToArrays(String wort){
// char[] arr = wort.toCharArray();
// return arr;
// }
// Methoden Stummgeschalten da in Constructor zusammengefasst!
// public void pushStack(char[] arr){
// for( int i=0; i < arr.length; i++){
// meinStack.push(arr[i]);
// }
// }
public boolean vergleichen() { // Methode vergleicht die einzelnen Chars des
// Stacks mit denen des Arrays
int i = 0; // Index des Arrays
while (!meinStack.empty()) { // Abbruchbedingung
// durchläuft den Stack und vergleicht es mit den Chars des Arrays
if (meinStack.pop().equals((arr[i]))) { // wenn diese Gleich sind wird Array index hochgezählt
i++;
} else { // wenn Chars nicht gleich dann break
break;
}
}
if (meinStack.empty()) // wenn meinStack leer dann muss Palindrom da kein break return true
return true;
else
return false; // falls meinStack nicht leer dann break also kein Palindrom
}
}
|