PDA

View Full Version : [Frage] method toString() error ?


quarx
09-05-2004, 19:25
Hi, habe ein kleines Problem. Kann mir jemand erklären wieso folgendes nicht funktioniert?


String Eingabe = EprogIO.readWord();
String Test = "";
Test = String.toString(Eingabe.charAt(index1)) + String.toString(Eingabe.charAt(index2));


Fehlermeldung:

Gugi.java [23:1] cannot resolve symbol
symbol : method toString (char)
location: class java.lang.String
Test = String.toString(Eingabe.charAt(index1)) + String.toString(Eingabe.charAt(index2));
^



lg

wolk
09-05-2004, 19:36
wenn du auf java.sun.com nachschlägst findest du:
http://java.sun.com/j2se/1.4.2/docs/api/java/lang/String.html#toString()

public String toString()
This object (which is already a string!) is itself returned.

Specified by:
toString in interface CharSequence
Overrides:
toString in class Object
Returns:
the string itself.

d.h. x.toString() : x ist ein String die funktion wird mit () aufgerufen und gibt x zurück

das was du machen willst ist schätzungsweise mal das zeichen an index1 und zeichen an index2 als string in Test schreiben

Test = "" + Eingabe.charAt(index1) + Eingabe.charAt(index2);

an Strings kann man jeden datentyp hängen -> da "" ein String ist (allerdings leer) kannst du ganz einfach mit + die char anhängen

hoffe ich habs beantwortet, ansonsten spezifizier genauer was du machen möchtest

mfg

quarx
09-05-2004, 19:45
Test = "" + Eingabe.charAt(index1) + Eingabe.charAt(index2);
thx, dass hab ich vorher eh gemacht nur da meldet er:

Gugi.java [23:1] incompatible types
found : int
required: java.lang.String
Test = Eingabe.charAt(index1) + Eingabe.charAt(index2);
^

(der Pfeil steht unter dem +)

aber im Eprog Script steht auch:
public static String toString(char c)
Returns a String Object representing the specified char. The result is a String of length 1 ......

das was du machen willst ist schätzungsweise mal das zeichen an index1 und zeichen an index2 als string in Test schreiben Genau. Jeden Datentyp? Ohh, dachte nur char und String.

wolk
09-05-2004, 19:49
du hast vorher schon was anderes gemacht

Test = Eingabe.charAt(index1) + Eingabe.charAt(index2);
mit diesem befehl willst du 2 char zusammenzählen und einem String zuweisen

Test = "" + Eingabe.charAt(index1) + Eingabe.charAt(index2);
mit desem Befehl addierst du zum String "" ein char, was wiederum einen String ergibt und dann noch einen char hinzu und diesen String kannst du ohne Probleme dem Test zuweisen

quarx
09-05-2004, 19:51
http://hades.gothic.at/iforum/images/smilies/idea.gifhttp://hades.gothic.at/iforum/images/smilies/wallbash.gif Vieeelen Dank, jetzt check ichs endlich.

wolk
09-05-2004, 19:57
bitte, gern geschehen

bei solchen sachen solltest du vielleicht wirklich auf java.sun.com nachschlagen anstatt im eprog skriptum (ich glaub auch eher du hast wo falsch nachgeschlagen)

public static String toString(char c) : bei welcher Klasse hast du da nachgeschlagen ? Char? String ?

na egal, wenns jetzt geht is eh in ordnung

quarx
09-05-2004, 20:02
ok, mach ich in zukunft
hab bei Character nachgeschaut, weil charAt() doch einen Character leifert ?

naja, war eh totaler schwachsinn http://hades.gothic.at/iforum/images/smilies/shinner.gif

wolk
09-05-2004, 20:56
ähm, charAt liefer KEINEN char und auch keinen Charakter

das String vor dem toString gibt an dass da ein String zurückgeliefert wird

prinzipiell: überleg dir was du hast und was du haben möchtest, und dann schau als erstes dort nach was du hast (zb Integer) ich will aber einen String -> (Integer.toString()

Integer <> int, char <> Charakter !!