Autor Beitrag
stigge
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 426

WinXP
Delphi 2007
BeitragVerfasst: Fr 10.08.07 14:22 
ausblenden 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 user profile iconUGrohne: Code- durch C#-Tags ersetzt
UGrohne
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Veteran
Beiträge: 5502
Erhaltene Danke: 220

Windows 8 , Server 2012
D7 Pro, VS.NET 2012 (C#)
BeitragVerfasst: Fr 10.08.07 14:31 
Du solltest das Ergebnis von Trim auch der Variablen zuweisen:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: 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.:
ausblenden 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 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 426

WinXP
Delphi 2007
BeitragVerfasst: Fr 10.08.07 14:34 
user profile iconUGrohne hat folgendes geschrieben:
Du solltest das Ergebnis von Trim auch der Variablen zuweisen:
ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 3803
Erhaltene Danke: 176

Arch Linux
Python, C, C++ (vim)
BeitragVerfasst: Fr 10.08.07 17:24 
Kann sie gar nicht, denn .Net-Strings sind unveränderbar ;) .
JüTho
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2021
Erhaltene Danke: 6

Win XP Prof
C# 2.0 (#D für NET 2.0, dazu Firebird); früher Delphi 5 und Delphi 2005 Pro
BeitragVerfasst: Fr 10.08.07 17:25 
user profile iconstigge 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.