Frage von Mihajlangelo, 18

Wie erhalte ich einen String nach einem gewissen Punkt in einem längeren String(C#)?

Ich habe einen langen string: "Die Temperatur: 55 ist zwei Grad wärmer als die Mindesttemperatur: 53 und ein Grad kühler als die Maximaltemperatur: 56. Die Temperatur: 86 wäre also nicht ok. Temperatur: 54 schon."

Ich möchte gerne die Werte daraus als string isolieren: Temperatur als string: "55" Mind.Temp als string: "53" Max.Temp als string: "56"

Ich habe dies mit der Suche nach dem Wert zwischen 2 Stringteilen, also: Urstring.IndexOf("Mindesttemperatur") Urstring.LastIndex("und") usw. zwar für den Mindestwert geschafft, jedoch ist mein Ziel die ersten 2 Char(Buchstaben oder Zahlen) nach dem Wort "Mindesttemperatur:" zu erhalten.

Kurz: Wie könnte ein Code lauten, der die ersten zwei char als string nach einem gewissen Punkt in einem längeren String wiederggibt? Und: Falls ich den Wert von "Temperatur" möchte, dieser aber doppelt oder dreifach vorkommt, wie finde ich den string "Temperatur" den ich brauche?

Besten Dank an alle schlauen Helfer :)

Antwort
von Mikkey, 14

Mache Dich einfach mal mit regulären Ausdrücken vertraut, Du kannst dann nach den "Einleitungen" inklusive der Werte suchen. Die Matches enthalten dann am Ende die gesuchten Ziffern.

Beispiel: "Die Temperatur: [0-9]+" findet drei Matches, der erste davon ist das, was Du suchst. Der Wert findet sich darin ab Position 16.

Durch diese Methode ersparst Du Dir, im Originalstring mit Offsets und Suchlängen zu arbeiten.

Antwort
von CrystalixXx, 9

Reguläre Ausdrücke dürften für eine so kleine Zeichenkette "too much" sein. Mit einfachen Zeichenkettenoperationen kommst du auch zum Ziel.

Wenn du weißt, wie diese Temperaturen heißen, dann suchst du nach dem Index des Wortes und kannst mittels Substring die Zahl ermitteln.

Contains, IndexOf und Substring sollten dafür ausreichen.

Keine passende Antwort gefunden?

Fragen Sie die Community