F
Frischling
Gast
Hallo Leute,
bin blutiger Anfänger, vielleicht kann mir trotzdem jemand helfen. Heute ist erst mein zweiter Tag mit Java.
ich möchte aus einer Klasse "TestAnagramChk" eine andere "AnagramChk" aufrufen, der zwei Argumente als Strings übergeben werden und die diese Strings daraumhin überprüft ob es sich um Angramme handelt. "AnagramChk" läuft von der Konsole aus problemlos, aber beim Kompilieren von "TestAnagramChk" erhalte ich folgende Fehlermeldung:
TestAnagramChk.java:10: cannot find symbol
symbol : method AnagramChk(java.lang.String,java.lang.String)
location: class TestAnagramChk
if( AnagramChk(a,b) == true )
^
Bei meine Beispielen habe ich schon ähnliche Aufrufe gesehen die funktionieren, aber an meinem Ansatz ist irgendwas faul und ich kommt nicht drauf.
Das ist die Klasse die eigenständig einwandfrei funktioniert.
Schon mal Dank vorab.
bin blutiger Anfänger, vielleicht kann mir trotzdem jemand helfen. Heute ist erst mein zweiter Tag mit Java.
ich möchte aus einer Klasse "TestAnagramChk" eine andere "AnagramChk" aufrufen, der zwei Argumente als Strings übergeben werden und die diese Strings daraumhin überprüft ob es sich um Angramme handelt. "AnagramChk" läuft von der Konsole aus problemlos, aber beim Kompilieren von "TestAnagramChk" erhalte ich folgende Fehlermeldung:
TestAnagramChk.java:10: cannot find symbol
symbol : method AnagramChk(java.lang.String,java.lang.String)
location: class TestAnagramChk
if( AnagramChk(a,b) == true )
^
Java:
/* TestAnagramChk.java */
public class TestAnagramChk
{
public static void main(String[] args)
{
String a, b;
a = "earth";
b = "heart";
if( AnagramChk(a,b) == true )
System.out.print(a +" & "+ b +" are anagrams");
else
System.out.print(a +" & "+ b +" are not anagrams");
}
}
Bei meine Beispielen habe ich schon ähnliche Aufrufe gesehen die funktionieren, aber an meinem Ansatz ist irgendwas faul und ich kommt nicht drauf.
Das ist die Klasse die eigenständig einwandfrei funktioniert.
Java:
/* AnagramChk.java */
public class AnagramChk {
public static void main(String[] args) {
if(args.length != 2) {
System.err.println("Input error");
System.exit(1);
}
if(isAnagram(args[0].toLowerCase(), args[1].toLowerCase(), args[0].length())) {
System.out.print(args[0]+" & "+args[1]+" are anagrams");
return;
} else {
System.out.print(args[0]+" & "+args[1]+" are not anagrams");
return;
}
}
static boolean isAnagram(String string1, String string2, int i)
{
if(string1.length() != string2.length() && i == string1.length()){
return false;
}
if(i==0)
return true;
int pos = string2.indexOf(string1.substring(i-1,i));
if(pos == -1)
return false;
else {
string2 = string2.substring(0,pos) + string2.substring(pos+1); // deletes char
return isAnagram(string1, string2, --i);
}
}
}
Schon mal Dank vorab.