# [C#]Stringfunktionen



## Terrance & Philipp (6. Oktober 2002)

Hi!

Habt ihr mir ein paar Links zu Seiten wo alle (oder zumindest die meisten  ) Stringfunktionen die es in C# gibt aufgelistet sind?

Wäre euch dankbar.

Grüsse
T&P

P.s. Im Moment geht es mir gerade hauptsächlich um den Befehl wie ich einen String in einem andern suchen kann.


----------



## Dario Linsky (6. Oktober 2002)

in c# werden strings als objekte behandelt und haben daher klassenmethoden. die entsprechende funktion, um einen string in einem anderen zu suchen ist IndexOf(). wenn der teilstring gefunden wird, gibt diese funktion die position des ersten zeichens zurück, ansonsten -1.
eine andere möglichkeit wäre die methode SubString().


----------



## Terrance & Philipp (6. Oktober 2002)

*kopfauftischplattehämmer* 

Danke...


----------



## Dario Linsky (6. Oktober 2002)

hier noch mal die wichtigsten string-funktionen zusammengefasst:

*klassenmethoden: *

```
public static bool Compare(string strA, [int indexA,] string strB [, int indexB] [, int length] [, bool ignoreCase);
```
vergleichen von strings oder teilstrings.


```
public static string Concat(object);
public static string Concat(string[] values);
public static string Concat(object[] args);
```
verbinden von mehreren strings oder objekten, die strings repräsentieren.


```
public static string Copy(string str0);
```
string kopieren.


```
public static bool Equals(string a, string b);
```
vergleichen von strings.


```
public static string Format(string format, object arg0);
public static string Format(string format, object[] args);
```
formatierung von strings.

*instanzmethoden: *

```
public object Clone();
```
liefert eine kopie des strings als objekt zurück.


```
public int CompareTo(object o);
public int CompareTo(string s);
```
vergleichen von zwei strings oder string-objekten. dabei wird eine zahl zurückgegeben.


```
public bool EndsWith(string value);
```
kontrolliert, ob die string-instanz mit einem anderen string endet.


```
public new bool Equals(string value);
public override bool Equals(object obj);
```
funktioniert genau wie die gleichnamige klassenmethode.


```
public type GetType()
```
liefert den datentyp des objekts zurück.


```
public int IndexOf(char[] value [, int startIndex] [, int endIndex]);
public int IndexOf(string value [, int startIndex] [, int endIndex]);
public int IndexOf(char value [, int startIndex] [, int endIndex]);
```
ermittelt die position vom ersten zeichen eines teilstrings.


```
public string Insert(int startIndex, string value);
```
fügt einen teilstring an der angegebenen stelle ein.


```
public string PadLeft(int totalWidth [, char paddingChar]);
```
richtet einen string rechtsbündig aus und füllt ihn vorne mit leerzeichen auf.


```
public string PadRight(int totalWidth [, char paddingChar]);
```
genau wie PadLeft, nur linksbündig.


```
public string Remove(int startIndex, int Count);
```
löscht eine beliebige menge zeichen aus dem string.


```
public string Replace(char oldChar, char newChar);
```
ersetzt ein bestimmtes zeichen durch ein anderes.


```
public string Split(char[] separator [, int count]);
```
teilt einen string in mehrere teilstrings auf.


```
public bool StartsWith(string value);
```
kontrolliert, ob der string mit einem anderen string beginnt (siehe EndsWith).


```
public string SubString(int startIndex [, int length]);
```
liefert einen teilstring ab der angegebenen position zurück.


```
public string Trim([char[] trimChars]);
```
entfernt an anfang und ende des strings alle vorkommen der angegebenen zeichen. wenn keine zeichen angegeben werden, werden alle leerzeichen an anfang und ende entfernt.


```
public string TrimEnd(char[] trimChars);
public string TrimStart(char[] trimChars);
```
wie Trim(), aber nur entweder am anfang oder ende des strings.


----------



## goela (7. Oktober 2002)

@asphyxia
Vorbildlich!!!! Wenn wir immer so antworten, dann bekommen "wir" nächstes mal bei Computerbild keine 3.5 mehr!!!


----------



## Terrance & Philipp (8. Oktober 2002)

Wow, danke vielmals asphyxia!

Ich hab allerdings noch ne Frage.
Das mit IndexOf hat ja eigentlich gut geklappt, ich bekommen einen Wert zurück (der auch stimmt) und kann den in ein Textfeld reinschreiben und verwenden.

Aber: Sobald ich diesen Wert in eine If Abfrage einbinden will meckert er. Also das sieht bei mir so aus:
if (ergebnis.Text.IndexOf(".", 0) = -1) {

Das gibt bei mir 2 Fehler:
Die linke Seite einer Zuweisung muss eine Variable, eine Eigenschaft oder ein Indexer sein.
Implizite Konvertierung des Typs 'int' zu 'bool' nicht möglich.

Was mach ich falsch?

Grüsse
T&P


----------



## Dario Linsky (8. Oktober 2002)

vergleichen immer mit == (vergleichsoperator) anstelle von = (zuweisung).


----------



## Terrance & Philipp (8. Oktober 2002)

*schäm* *schäm*  

Hmpf, das hätte mir auch selber einfallen können. Aber manchmal sieht man den Wald vor lauter Bäumen nicht mehr.

Danke dir vielmals.

Grüsse
T&P

P.s. Ich fahr jetzt für 4 Tage nach Paris. 
Tschüs @ all!


----------



## Dario Linsky (8. Oktober 2002)

ist ja nicht so schlimm, passiert mir auch oft genug. 
viel spass in paris.


----------



## Pegasus2003 (23. Oktober 2007)

Ich komm nicht klar

if (stringToTest.IndexOf("a") == -1)

--> Diese If-Abfrage liefert mir -1 zurück falls kein a an der erste Stelle des Strings ist....So wie ich das verstanden habe, müsste er doch -1 zurückliefern falls a im ganzen String nicht vorkommt?

Grüsse und danke!


----------



## MCoder (23. Oktober 2007)

Pegasus2003 hat gesagt.:


> So wie ich das verstanden habe, müsste er doch -1 zurückliefern falls a im ganzen String nicht vorkommt?


So ist es. Warum es allerdings bei dir nicht wie erwartet funktioniert, kann ich nicht sagen sagen. Zeig doch mal etwas mehr Code.

Gruß
MCoder


----------



## Pegasus2003 (23. Oktober 2007)

--> Jetzt klappts plötzlich...keine Ahnung warum 
Ich führe den Code im TextChanged Objekt von einer Textbox aus.


```
private void tbDescripton_TextChanged(object sender, EventArgs e)
        {
           
            string stringToTest = tbDescripton.Text;
            MessageBox.Show(stringToTest.IndexOf("a").ToString());
            if (stringToTest.IndexOf("a") == -1)
            {
                     MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
            {
                checkStatusSetOkButton();
            }
            //checkStatusSetOkButton();
        }
```


----------



## MCoder (23. Oktober 2007)

Die Anweisung im if-Block schaut etwas verunglückt aus, ist wohl ein Tipp- oder Copy&Paste-Fehler?
Ansonsten, wie sieht denn der Inhalt von "stringToTest" (tbDescripton.Text) aus? Wenn ich's bei mir kurz teste, funktioniert's eigenlich wie erwartet:

```
string str = "abcdefg";
Console.WriteLine(str + (str.IndexOf("a") == -1 ? "  nicht gefunden" : "  gefunden")); // gefunden

str = "bcdefg";
Console.WriteLine(str + (str.IndexOf("a") == -1 ? "  nicht gefunden" : "  gefunden")); // nicht gefunden

str = "bcd-a-efg";
Console.WriteLine(str + (str.IndexOf("a") == -1 ? "  nicht gefunden" : "  gefunden")); // gefunden
```
Gruß
MCoder


----------

