Ich habe diese Frage gelesen, um das erste Zeichen der Zeichenfolge zu erhalten. Gibt es eine Möglichkeit, die ersten n Zeichen aus einer Zeichenfolge in C # abzurufen?
Sie können Enumerable.Take like verwenden:
char[] array = yourStringVariable.Take(5).ToArray();
Oder Sie können String.Substring verwenden.
string str = yourStringVariable.Substring(0,5);
Denken Sie daran, dass String.Substring
eine Ausnahme auslösen kann, wenn die Länge der Zeichenfolge geringer ist als die erforderlichen Zeichen.
Wenn Sie das Ergebnis als Zeichenfolge zurückgeben möchten, können Sie Folgendes verwenden:
Verwenden von String Constructor und LINQs Take
string firstFivChar = new string(yourStringVariable.Take(5).ToArray());
Das Plus beim Ansatz ist nicht die Prüfung der Länge.
String.Substring
mit Fehlerprüfung zu verwendenmögen:
string firstFivCharWithSubString =
!String.IsNullOrWhiteSpace(yourStringVariable) && yourStringVariable.Length >= 5
? yourStringVariable.Substring(0, 5)
: yourStringVariable;
Sie können Substring verwenden (int startIndex, int length)
string result = str.Substring(0,5);
Der Teilstring beginnt an einer angegebenen Zeichenposition und hat eine angegebene Länge. Diese Methode ändert den Wert des aktuellen .__ nicht. Beispiel. Stattdessen wird eine neue Zeichenfolge mit Längenzeichen .__ zurückgegeben. Beginnend von der Position startIndex in der aktuellen Zeichenfolge MSDN
Was ist, wenn die Quellzeichenfolge weniger als fünf Zeichen hat? Sie erhalten eine Ausnahme, wenn Sie die obige Methode verwenden. Wir können eine Bedingung setzen, um zu überprüfen, ob die Anzahl der Zeichen in der Zeichenfolge mehr als 5 beträgt. Hinweis Ich habe der firstFiveChar-Variablen eine Quellzeichenfolge zugewiesen. FirstFiveChar ändert sich nicht, wenn Zeichen weniger als 5 sind. Andernfalls ist ein Teil nicht erforderlich.
string firstFiveChar = str;
If(!String.IsNullOrWhiteSpace(yourStringVariable) && yourStringVariable.Length >= 5)
firstFiveChar = yourStringVariable.Substring(0, 5);
Niemand erwähnte, wie man bei der Verwendung von Substring()
die richtigen Überprüfungen vornimmt, deshalb wollte ich dazu beitragen.
Wenn Sie nicht Linq
verwenden und Substring()
verwenden möchten, müssen Sie sicherstellen, dass Ihre Zeichenfolge größer als der zweite Parameter (Länge) der Funktion Substring()
ist.
Nehmen wir an, Sie brauchen die ersten 5 Zeichen. Sie sollten sie mit der richtigen Überprüfung erhalten, wie folgt:
string title = "love" // 15 characters
var firstFiveChars = title.Length <= 5 ? title : title.Substring(0, 5);
// firstFiveChars: "love" (4 characters)
Ohne diese Prüfung würde die Substring()
-Funktion eine Ausnahme auslösen, da sie die Buchstaben durchläuft, die nicht vorhanden sind.
Ich denke du verstehst die Idee ...
Das Problem bei .Substring(,)
ist, dass Sie sicherstellen müssen, dass der angegebene String mindestens die Länge der angeforderten Anzahl von Zeichen hat. Andernfalls wird eine ArgumentOutOfRangeException
ausgegeben.
Lösung 1 (mit 'Teilstring'):
var firstFive = stringValue != null ?
stringValue.Substring(0, stringValue.Length >= 5 ? 5 : stringValue.Length) :
null;
Der Nachteil von .Substring(
besteht darin, dass Sie die Länge der angegebenen Zeichenfolge überprüfen müssen.
Lösung 2 (mit 'Take'):
var firstFive = stringValue != null ?
string.Join("", stringValue.Take(5)) :
null;
Wenn Sie 'Take' verwenden, wird verhindert, dass Sie die Länge der angegebenen Zeichenfolge überprüfen müssen.
Ich weiß nicht, warum jemand das erwähnt hat ... Aber es ist der kürzeste und einfachste Weg, dies zu erreichen.
string str = yourString.Remove(n);
n
- Anzahl der benötigten Zeichen
Beispiel
var zz = "7814148471";
Console.WriteLine(zz.Remove(5));
//result - 78141
Hängen Sie fünf Leerzeichen an, schneiden Sie die ersten fünf ab und schneiden Sie das Ergebnis ab. Die Anzahl der Leerzeichen, die Sie anfügen, sollte der Anzahl entsprechen, die Sie schneiden. Stellen Sie sicher, dass Sie die Klammer vor .Substring(0,X)
einfügen, da Sie sonst nichts anhängen.
string str = (yourStringVariable + " ").Substring(0,5).Trim();
Bei dieser Technik müssen Sie sich nicht um die in anderen Antworten erwähnte ArgumentOutOfRangeException
kümmern.
string str = "GoodMorning"
string strModified = str.Substring(0,5);
Verwenden Sie die PadRight-Funktion, um zu verhindern, dass die Zeichenfolge zu kurz ist. Nehmen Sie die benötigten Zeichen und schneiden Sie die Leerzeichen am Ende in einer Anweisung ab.
strSomeString = strSomeString.PadRight(50).Substring(0,50).TrimEnd();
So erhalten Sie die ersten n Zeichen aus einer Zeichenfolge in C #
String yourstring="Some Text";
String first_n_Number_of_Characters=yourstring.Substring(0,n);
Nachfolgend finden Sie eine Erweiterungsmethode, mit der geprüft wird, ob eine Zeichenfolge größer ist als benötigt, und die Zeichenfolge auf die definierte maximale Zeichenanzahl verkürzt und "...".
public static class StringExtensions
{
public static string Ellipsis(this string s, int charsToDisplay)
{
if (!string.IsNullOrWhiteSpace(s))
return s.Length <= charsToDisplay ? s : new string(s.Take(charsToDisplay).ToArray()) + "...";
return String.Empty;
}
}
Wenn wir nur die ersten 5 Zeichen eines Feldes haben wollen, kann dies durch Left Attribute erreicht werden
Vessel = f.Vessel !=null ? f.Vessel.Left(5) : ""
Oder Sie könnten String.ToCharArray () verwenden.
Es benötigt int startindex
und und int length
als Parameter und gibt einen char[]
zurück.
new string(stringValue.ToCharArray(0,5))
Sie müssen immer noch sicherstellen, dass die Zeichenfolge die richtige Länge hat. Andernfalls wird eine ArgumentOutOfRangeException
ausgegeben.
Ich benutze:
var firstFive = stringValue?.Substring(0, stringValue.Length >= 5 ? 5 : customAlias.Length);
oder alternativ, wenn Sie auch nach Whitespace suchen möchten (statt nur Null):
var firstFive = !String.IsNullOrWhiteSpace(stringValue) && stringValue.Length >= 5 ? stringValue.Substring(0, 5) : stringValue
Bitte versuchen Sie diesen Code, wenn str kleiner als 5 ist.
string strModified = str.Substring(0,str.Length>5?5:str.Length);