Entwickler-Ecke

C# - Die Sprache - String suche nach "


kostonstyle - Do 28.01.10 17:21
Titel: String suche nach "
Hallo miteinader
wie kann mit String nach " suchen?
habe folgendes versucht, aber leider gescheitert.

C#-Quelltext
1:
int aufrufezeichen = item.IndexOf("/"");                    


am besten zeige ich euch, was ich genau möchte
string sieht so aus

Quelltext
1:
<printObject ID = "72" type = "textArea">                    

nun möchte ich nur ID = "72" auslesen?
string aber auch so aussehen

Quelltext
1:
<printObject ID = "2" type = "textArea">                    

dann nur ID = "2" ausgelesen werden.

wie mache ich so etwas?

danke kostonstyle


danielf - Do 28.01.10 17:25

An was ist es den gescheitert? Wenn du ein Kompilierfehler bekommst ist es immer sehr nützlich diesen hier anzuzeigen.

Dieses mal ist es noch einfach. Dein Escape Zeichen ist falsch. Es ist nicht / sondern \

Gruß Daniel


danielf - Do 28.01.10 17:28

Dein Edit war aber schnell....

Wenn du etwas parsen willst, hilft dir Reguläre Ausdrücke. Die Implementierung heißt in .NET Regex.

Das Pattern wäre dann

C#-Quelltext
1:
string pattern = @"<printObject ID = ""(?<id>\d*)"" type = ""textArea"">";                    


Edit: Du solltest keine zwei Fragen in einem Thread verarbeiten.


kostonstyle - Do 28.01.10 17:55

ich möchte den Wert von ID herrauslesen. habe mal foldendes versucht.

C#-Quelltext
1:
2:
3:
4:
5:
6:
            int id = item.IndexOf("ID");
            char[] charsToTrim = {'"''\''};
            string id_value = item.Substring((id + 5), 4);
            id_value = id_value.TrimStart(charsToTrim);
            id_value = id_value.TrimEnd(charsToTrim);
            return Convert.ToInt16(id_value.Trim(charsToTrim));

funktioniert fast, ausser der zweit letzte Befehl, und zwar es entfernt Zeichen nicht.
Die Ausgabe sieht so aus nach

C#-Quelltext
1:
id_value = id_value.TrimEnd(charsToTrim);                    

"1\" "
es sollte \" entfernt werden.

@danielf
Zitat:
Edit: Du solltest keine zwei Fragen in einem Thread verarbeiten.

kommt nicht wieder vor..


danielf - Do 28.01.10 18:12

Hast du mal gelesen, was die Funktion trim macht?


kostonstyle - Fr 29.01.10 13:36

So wie ich es verstanden habe, entfernt es alle Zeichen, die man in char array mitgibt.


Ralf Jansen - Fr 29.01.10 13:56

Aus der Msdn Hilfe
Zitat:
Entfernt alle führenden und nachgestellten Vorkommen der Zeichen im angegebenen Array aus dem aktuellen String-Objekt.

Man beachte die Einschränkung von ~alle~. Dein zu entfernen Zeichen fällt wahrscheinlich nicht in die Kategorie führenden oder nachgestellt sondern steht mitten im string. Du willst oder musst bestimmt auch Leerzeichen entfernen.