Home
/
JavaForum
/
Beginner
Infos
|
Features
|
Gold-Edition
|
Kundenservice
java
Übersicht
Forum
-
Beginner
-
Java allgemein
-
JDBC
-
JNI
-
Networking
-
Online-Ressourcen
-
Swing + AWT
-
XML
-
Meckerecke
Mitglieder
LOGIN
User oder E-Mail
Passwort
·
Passwort vergessen
·
Kostenlos anmelden
Information
Demo
Features
Im Vergleich
Anmeldung
SUCHE
Beiträge, Foren oder Verfasser finden:
Kundenservice
Impressum
Datenschutz
AGB
Status
4.704 User online
1 User eingeloggt
Beiträge
Beginner
Java allgemein
JDBC
JNI
Networking
Online-Ressourcen
Swing + AWT
XML
Meckerecke
Antworten
Neuer Beitrag
Gesamtdarstellung
Detaildarstellung
Einzeldarstellung
Threaddarstellung
Beitrag 149 von 2963 (5%)
Autor
DeaconFrost
Datum
16.01.06, 01:02
Betreff
Re: Töne bei Java
Hallo Phillip,
Schicke mal eins voraus: Bin etwas verwirrt von deinem Beitrag, weil ich einfach nicht verstanden habe wo exakt das Problem liegt (Bitte nicht falsch verstehen: Keine Kritik!) Ich versuch's mal trotzdem zu beantworten, aber bitte nicht wundern, wenn ich daneben liege.
Zunächst zu deinem ersten Codeteil. Hier kriegst du einen Fehler (Ich weiss auch warum), aber Du schreibst "er sendet mir aber einen fehler den ich auch verstehe da es ja logisch, dass ich nicht einfach immer String aus = was anderes schreiben kann."
Bei dieser Formulierung bin ich mir nicht sicher, ob Du
1.) verstanden hast, wieso der Compiler schreit
2.) ob Du hier überhaupt etwas wissen willst bzw. ein Problem hast ("den ich auch verstehe") ?!?
In jedem Fall gibt's hier ein Problem (da sind wir uns einig), da es in Java verboten ist im gleichen Kontext (scope) eine Variable mit gleichem Namen zu deklarieren (in diesem Fall zweimal "aus"). Das soll helfen grobe Fehler zu vermeiden.
Wenn Du das nur einmal machst funktioniert es auch. Genau.
Der dritte Teil stürzt mich nun etwas in Verwirrung. Die Formulierung "das funktioniert genauso wenig" gibt mir Rätsel auf. Genauso wenig wie was?!? Bis jetzt war doch alles klar ("den ich auch verstehe", usw.), oder? Na gut.
In jedem Fall sind wir uns einig, dass hier ein Problem liegt. Ich nehme an, dass Du von der Codezeile
ein.replace("a", "b");
erwartest, dass im String ein nun der Buchstabe a durch b ersetzt wird. Das ist NICHT der Fall.
String-Objekte ändern ihren Inhalt nämlich niemals. Dadurch können Referenzen auf das gleiche String-Objekt millionenfach verteilt werden, ohne das irgendetwas passieren könnte (ansonsten müsste ja jeder fürchten, dass der String plötzlich anders aussieht, weil irgendjemand auf die Idee kommen könnte replace aufzurufen ;-).
Alle Methoden die etwas ändern geben stattdessen ein neues String-Objekt zurück, welches die Änderungen enthält.
Wenn Du also die obige Codezeile schreibst, so wird ein neues String-Objekt erzeugt (in dem a durch b ersetzt wurde) und gleich wieder verworfen (der Rückgabewert wird ignoriert). Der String in ein bleibt, wie gesagt, unverändert.
Ich nehme an, es ist dein Ziel öfter als einmal eine Ersetzung vorzunehmen. Du kannst das folgendermassen erreichen:
String ein = eingabe.getText();
// aus enthält jetzt einen neuen String, in dem a durch b ersetzt wurde
String aus = ein.replace("a","b");
// Jetzt soll auch noch c durch d ersetzt werden
// Das ganze wird wieder in aus gespeichert
// (aus wird sozusagen überschrieben)
aus = aus.replace("c","d");
Hier wird aus einfach mehrfach verwendet und enthält dann den Eingabetext, wobei die Buchstaben a und c durch b und d ersetzt werden.
Es gibt aber noch eine andere Möglichkeit:
String ein = eingabe.getText();
String aus = ein.replace("a","b").replace("c","d").replace("e","f");
Warum funktioniert das? Der Rückgabewert von ein.replace("a","b") ist ein String. Auf diesem String darf ich wiederum eine Methode aufrufen (replace("c","d")). Auch das gibt wieder einen String usw. usf. Am Schluss landet das letzte Ergebnis in aus.
Bei ein paar wenigen Aufrufen kann man diese Verkettung verwenden, bei einigen 100 Ersetzungen würde ich dann doch auf die erste Methode zurückgreifen :-)
Zu den Tönen gibt's im Internet umfangreiche Hilfe unter
http://java.sun.com/j2se/1.5.0/docs/api/
.
Ich hoffe, ich konnte Dir helfen.
Liebe Grüße,
Deacon Frost
Diskussionsverlauf:
Töne bei Java
Re: Töne bei Java
Re: Töne bei Java
Re: Töne bei Java
Re: Töne bei Java
Re: Töne bei Java
Re: Töne bei Java
Re: Töne bei Java
Re: Töne bei Java
Re: Töne bei Java
Re: Töne bei Java
Re: Töne bei Java
Auf diesen Beitrag antworten
Neuen Beitrag verfassen
Impressum
·
Datenschutz
·
AGB
·
Infos
·
Presse
Ein modernes Forum:
teamturn.com