Und für eine bessere Lesbarkeit können Sie "" verwenden. Es kompiliert genau das gleiche wie string.Empty in diesen Tagen.
PRMan
9
Substring hat zwei Überladungsmethoden:
publicstringSubstring(int startIndex);//The substring starts at a specified character position and continues to the end of the string.publicstringSubstring(int startIndex,int length);//The substring starts at a specified character position and taking length no of character from the startIndex.
Für dieses Szenario können Sie die folgende Methode verwenden:
var str ="hello world!";
str = str.Substring(10);
Hier ist die Ausgabe:
d!
Wenn Sie eine defensive Codierung anwenden können, indem Sie deren Länge überprüfen.
löst eine Ausnahme aus, wenn der String kürzer als der Startindex ist
Răzvan Flavius Panda
1
Sie können die Methode Substring verwenden, die einen einzelnen Parameter verwendet, bei dem es sich um den Index handelt, von dem aus begonnen werden soll.
In meinem Code unten beschäftige ich mich mit dem Fall, dass die Länge kleiner als Ihr gewünschter Startindex ist und wenn die Länge Null ist.
string s ="hello world!";
s = s.Substring(Math.Max(0,Math.Min(10, s.Length-1)));
Derzeit wird das letzte Zeichen aus der Zeichenfolge zurückgegeben, wenn die Zeichenfolge weniger als 10 Zeichen lang ist.
Răzvan Flavius Panda
1
Zum:
var str ="hello world!";
Um die resultierende Zeichenfolge ohne die ersten 10 Zeichen und eine leere Zeichenfolge zu erhalten, wenn die Zeichenfolge kleiner oder gleich 10 ist, können Sie Folgendes verwenden:
var result = str.Length<=10?"": str.Substring(10);
oder
var result = str.Length<=10?"": str.Remove(0,10);
Die erste Variante wird bevorzugt, da nur ein Methodenparameter benötigt wird.
Es ist nicht erforderlich, die Länge in der SubstringMethode anzugeben . Deshalb:
string s = hello world;string p = s.Substring(3);
p wird sein:
"lo world".
Die einzige Ausnahme, die Sie berücksichtigen müssen, ist, ArgumentOutOfRangeExceptionwenn sie
startIndexkleiner als Null oder größer als die Länge dieser Instanz ist.
C# 8wird beim Targeting nicht unterstützt .NET Framework.
13.
0
Beim Aufrufen SubString()wird eine neue Zeichenfolge zugewiesen. Für eine optimale Leistung sollten Sie diese zusätzliche Zuordnung vermeiden. Beginnen C# 7.2Sie mit können Sie das Span- Muster nutzen.
Fügen Sie beim Targeting .NET Frameworkdas System.Memory-NuGet Paket hinzu. Bei .NET CoreProjekten funktioniert dies sofort.
staticvoidMain(string[] args){var str ="hello world!";var span = str.AsSpan(10);// No allocation!// Outputs: d!foreach(var c in span){Console.Write(c);}Console.WriteLine();}
Antworten:
Sie müssen die Längenprüfungen durchführen, da dies sonst einen Fehler auslösen würde
quelle
str = str.Remove(0,10);
Entfernt die ersten 10 Zeichenoder
str = str.Substring(10);
Erstellt eine Teilzeichenfolge ab dem 11. Zeichen bis zum Ende der Zeichenfolge.Für Ihre Zwecke sollten sie identisch funktionieren.
quelle
Teilzeichenfolge ist wahrscheinlich das, was Sie wollen, wie andere betonten. Aber nur um der Mischung eine weitere Option hinzuzufügen ...
Sie müssen nicht einmal die Länge überprüfen! :) Wenn es weniger als 10 Zeichen sind, erhalten Sie eine leere Zeichenfolge.
quelle
Substring
hat zwei Überladungsmethoden:Für dieses Szenario können Sie die folgende Methode verwenden:
Hier ist die Ausgabe:
Wenn Sie eine defensive Codierung anwenden können, indem Sie deren Länge überprüfen.
quelle
Der
Substring
hat einen Parameter namens startIndex. Stellen Sie es entsprechend dem Index ein, bei dem Sie beginnen möchten.quelle
Sie können Char mit der folgenden Zeile entfernen:
: - Prüfen Sie zuerst , dass die String genug Zeichen zu entfernen hat , wie
quelle
Verwenden Sie die Teilzeichenfolge.
quelle
Sie können die Methode Substring verwenden, die einen einzelnen Parameter verwendet, bei dem es sich um den Index handelt, von dem aus begonnen werden soll.
In meinem Code unten beschäftige ich mich mit dem Fall, dass die Länge kleiner als Ihr gewünschter Startindex ist und wenn die Länge Null ist.
quelle
Zum:
Um die resultierende Zeichenfolge ohne die ersten 10 Zeichen und eine leere Zeichenfolge zu erhalten, wenn die Zeichenfolge kleiner oder gleich 10 ist, können Sie Folgendes verwenden:
oder
Die erste Variante wird bevorzugt, da nur ein Methodenparameter benötigt wird.
quelle
Es ist nicht erforderlich, die Länge in der
Substring
Methode anzugeben . Deshalb:p
wird sein:Die einzige Ausnahme, die Sie berücksichtigen müssen, ist,
ArgumentOutOfRangeException
wenn siestartIndex
kleiner als Null oder größer als die Länge dieser Instanz ist.quelle
Ab C # 8 können Sie einfach den Range Operator verwenden. Dies ist der effizientere und bessere Weg, um solche Fälle zu behandeln.
quelle
C# 8
wird beim Targeting nicht unterstützt.NET Framework
.Beim Aufrufen
SubString()
wird eine neue Zeichenfolge zugewiesen. Für eine optimale Leistung sollten Sie diese zusätzliche Zuordnung vermeiden. BeginnenC# 7.2
Sie mit können Sie das Span- Muster nutzen.Fügen Sie beim Targeting
.NET Framework
das System.Memory-NuGet
Paket hinzu. Bei.NET Core
Projekten funktioniert dies sofort.quelle