Hallo ich bins wieder einmal.
Ich habe die Aufgabe erhalten, zwei Strings die über die Konsole eingegeben werden auf ein Anagramm zu prüfen.
Meine Idee war, dies mittels BubbleSort zu machen. Zuerst einmal beide Strings sortieren und dann einfach vergleichen ob sie gleich sind. Klingt simpel oder?
Aber mein Quellcode lässt sich nicht kompilieren. Häufigste Errormeldung: cannot find symbol.
Könnt ihr mir sagen, was nicht funktioniert oder richtig implementiert ist?
Danke.
Ich habe die Aufgabe erhalten, zwei Strings die über die Konsole eingegeben werden auf ein Anagramm zu prüfen.
Meine Idee war, dies mittels BubbleSort zu machen. Zuerst einmal beide Strings sortieren und dann einfach vergleichen ob sie gleich sind. Klingt simpel oder?
Aber mein Quellcode lässt sich nicht kompilieren. Häufigste Errormeldung: cannot find symbol.
Könnt ihr mir sagen, was nicht funktioniert oder richtig implementiert ist?
Danke.
Code:
public class Anagramm
{
public static void swap1(int i, int j, char[] text1)
{
char temp=text1[i];
text1[i]=text1[j];
text1[j]=temp;
}
public static void swap2(int i, int j, char[] text2)
{
char temp=text2[i];
text2[i]=text2[j];
text2[j]=temp;
}
public static void sort1(char[] text1)
{
boolean isDone;
do
{
isDone=false;
for(int i=0;i<text1.length-1;i++)
{
if(text1[i]>text1[i+1])
{
swap1(i,i+1,text1);
isDone=true;
}
}
}while(isDone);
}
public static void sort2(char[] text2)
{
boolean isDone;
do
{
isDone=false;
for(int i=0;i<text2.length-1;i++)
{
if(text2[i]>text2[i+1])
{
swap2(i,i+1,text2);
isDone=true;
}
}
}while(isDone);
}
public static void main(String[] args){
System.out.print(testAnagramm(args[1]));
}
public static boolean testAnagramm(String text1, String text2){
{
if (args.length != 2)
{
System.out.println("Bitte rufen Sie das Programm mit einem Eingabewert auf");
System.out.println(" java BubbleSort 'dies ist ein text'+ 'dies ist ein text2'");
System.exit(-1);
}
// Zersprengt den String in Einzelteile, nämlich in 'char'-Elemente
char[] text1 = args[0].toCharArray();
char[] text2 = args[1].toCharArray();
// Sortiert die Buchstabenreihe
sort1(text1);
sort2(text2);
text1=text1.replace("!","").replace("?","").replace(".","").replace(",","")
.replace(":","").replace(" ","");
text2=text2.replace("!","").replace("?","").replace(".","").replace(",","")
.replace(":","").replace(" ","");
if(text1.equalsIgnoreCase(text2)) return true;
else return false;
}
}
}