carookee - group communication for you
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





· 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
   Antworten     Neuer Beitrag    

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