Entwickler-Ecke
C# - Die Sprache - Trim() will nicht?!?
stigge - Fr 10.08.07 14:22
Titel: Trim() will nicht?!?
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| private void button1_Click(object sender, EventArgs e) { string title = "Hallo "; MessageBox.Show(Convert.ToString(title.Length)); title.Trim(); title.Trim(Convert.ToChar(" ")); MessageBox.Show(Convert.ToString(title.Length)); MessageBox.Show(title); } |
Weiß jemand wieso das nicht funktioniert?
Nach dem trimmen sieht der String gleich aus wie davor...
P.S.: Wie gehen die C#-Tags?
Moderiert von
UGrohne: Code- durch C#-Tags ersetzt
UGrohne - Fr 10.08.07 14:31
Du solltest das Ergebnis von Trim auch der Variablen zuweisen:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| private void button1_Click(object sender, EventArgs e) { string title = "Hallo "; MessageBox.Show(Convert.ToString(title.Length)); title = title.Trim(); MessageBox.Show(Convert.ToString(title.Length)); MessageBox.Show(title); } |
JüTho - Fr 10.08.07 14:33
Hallo,
wer lesen kann, ist klar im Vorteil. In der SDK-Doku steht:
Zitat: |
String.Trim-Methode ()
Rückgabewert
Ein neuer String, der dieser Instanz entspricht, nachdem Leerraumzeichen am Anfang und am Ende entfernt wurden. |
Die Trim-Methode erzeugt also einen neuen String, und
dieser muss verwendet werden, also z.B.:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7:
| private void button1_Click(object sender, EventArgs e) { string title = "Hallo "; title = title.Trim(); MessageBox.Show(title); } } |
Gruß Jürgen
Für die Formatierung: Oben auf "Bereiche" klicken, dann den passenden Text markieren, dann oben auf das Plus-Zeichen neben "C#" klicken.
stigge - Fr 10.08.07 14:34
UGrohne hat folgendes geschrieben: |
Du solltest das Ergebnis von Trim auch der Variablen zuweisen:
C#-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| private void button1_Click(object sender, EventArgs e) { string title = "Hallo "; MessageBox.Show(Convert.ToString(title.Length)); title = title.Trim(); MessageBox.Show(Convert.ToString(title.Length)); MessageBox.Show(title); } | |
:oops: Das ist natürlich logisch.
Hätte gedacht diese Funktion bearbeitet den String direkt :wink:
Danke!
Kha - Fr 10.08.07 17:24
Kann sie gar nicht, denn .Net-Strings sind unveränderbar ;) .
JüTho - Fr 10.08.07 17:25
stigge hat folgendes geschrieben: |
Hätte gedacht diese Funktion bearbeitet den String direkt :wink:
Danke! |
Bitte beachte:
- Eine Funktion ist (z.B. unter Delphi) immer etwas mit Rückgabewert. Bei C# wird nicht zwischen Funktion und Prozedur unterschieden; es sind immer Methoden - ggf. mit void als Rückgabewert.
- Vor allem gilt, dass unter NET Strings immer unveränderlich sind; jede Änderung muss also ausdrücklich neu zugewiesen werden.
- Solche Zuweisungen sind immer mit Verschiebe-Operationen im Arbeitsspeicher verbunden und sollten deshalb vermieden werden. Insbesondere wäre etwas wie "myString += stringarray" innerhalb einer Schleife abwegig.
Ich hoffe, das hilft beim künftigen Verständnis. Jürgen
PS. Bitte beachte auch meinen
Hinweis zur Formatierung; unsere obigen Posts hatten sich überschnitten.
@Khabarakh
[i]Was ist bloß heute mit mir los - alle meine Beiträge überschneiden sich mit anderen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!