Ich habe eine Zeichenfolge, die folgendermaßen aussieht: "texthere^D123456_02"
. Aber ich möchte, dass mein Ergebnis D123456
ist.
das mache ich bis jetzt:
%Vor% Damit entferne ich mindestens _02
, aber wenn ich den gleichen Weg für ^
versuche, bekomme ich immer texthere
zurück, auch wenn ich name.IndexOf("^")
Ich habe auch versucht, nur auf ^
zu prüfen, um mindestens das Ergebnis zu erhalten: D123456_02
, aber immer noch das gleiche Ergebnis.
Ich habe sogar versucht, name.Replace("^"
zu verwenden und dann den Teilstring zu verwenden, den ich vorher benutzt habe. Aber auch hier bleibt das Ergebnis gleich.
texthere
ist nicht immer die gleiche Länge, also kommt .Remove()
nicht in Frage.
Was mache ich falsch?
Danke
Beim Aufruf von Substring
sollten Sie nicht von 0 starten, sondern von dem gefundenen Index :
Verwenden Sie die Methode String.Split
:
Oder Sie könnten RegExp verwenden, um dasselbe zu erreichen.
Nun, wenn Sie den gleichen Code verwenden, den Sie gepostet haben, macht er das Richtige, Sie fangen an Zeichen aus dem Zeichen 0 abzurufen und stoppen, wenn es "^" findet, was Sie erhalten werden, ist "Texthier".
Wenn Sie nur den Wert möchten, verwenden Sie Folgendes:
%Vor%Zuerst wird alles entfernt, was nach dem "_" und was vor "^" ist.
Der Teilstring benötigt eine Position und eine Länge. Sie müssen also herausfinden, wo sich Ihre Position befindet und wo der Unterstrich die Länge berechnet
%Vor%Eine Alternative zu dem, was bereits vorgeschlagen wurde, ist die Verwendung von regex:
%Vor%Versuchen Sie das und lassen Sie mich wissen, wie es geht
%Vor%Dadurch wird die Zeichenfolge bei allen Vorkommen von _ und ^ geteilt und die Liste der Zeichenfolgen nach der Teilung zurückgegeben. Da die Zeichenfolge, die Sie benötigen D123456 wäre im 1. Index (d. H. Die 2. Position), habe ich das ausgedruckt.