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?
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?
Antworten:
Sie können Enumerable verwenden. Nehmen Sie wie folgt :
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
dies eine Ausnahme auslösen kann, wenn die Länge der Zeichenfolge geringer ist als die erforderlichen Zeichen.
Wenn Sie das Ergebnis wieder in einer Zeichenfolge erhalten 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, dass die Länge nicht vorher überprüft wird.
String.Substring
Fehlerprüfungmögen:
string firstFivCharWithSubString =
!String.IsNullOrWhiteSpace(yourStringVariable) && yourStringVariable.Length >= 5
? yourStringVariable.Substring(0, 5)
: yourStringVariable;
IsNullOrWhiteSpace
ist hier falsch. Stellen Sie sich eine Zeichenfolge mit 10 Leerzeichen vor - Ihr Code gibt alle 10 zurück. Verwenden Sie IsNullOrEmpty
stattdessen. (Es ist nicht gut, IsNullOrWhiteSpace
mit einem anderen Test zu kombinieren . Testen Sie stattdessen auf null + leer. Trim
Wenn dies das angegebene Verhalten ist, führen Sie alle erforderlichen Tests / Operationen aus.)
Bitte versuche:
yourString.Substring(0, 5);
Überprüfen Sie die C # -Substring- und String.Substring-Methode
Sie können Teilzeichenfolge verwenden (int startIndex, int length)
string result = str.Substring(0,5);
Der Teilstring beginnt an einer bestimmten Zeichenposition und hat eine bestimmte Länge. Diese Methode ändert den Wert der aktuellen Instanz nicht. Stattdessen wird eine neue Zeichenfolge mit Längenzeichen ab der Position startIndex in der aktuellen Zeichenfolge MSDN zurückgegeben
Was ist, wenn die Quellzeichenfolge weniger als fünf Zeichen enthält? 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, und dann die ersten fünf durch Teilzeichenfolge erhalten. Hinweis Ich habe der Variablen firstFiveChar eine Quellzeichenfolge zugewiesen. Das firstFiveChar ändert sich nicht, wenn die Zeichen kleiner als 5 sind. Andernfalls ist kein Teil erforderlich.
string firstFiveChar = str;
If(!String.IsNullOrWhiteSpace(yourStringVariable) && yourStringVariable.Length >= 5)
firstFiveChar = yourStringVariable.Substring(0, 5);
Niemand erwähnte, wie man bei der Verwendung die richtigen Kontrollen durchführt Substring()
, deshalb wollte ich dazu beitragen.
Wenn Sie nicht verwenden Linq
und mitmachen möchten Substring()
, müssen Sie sicherstellen, dass Ihre Zeichenfolge größer als der zweite Parameter (Länge) der Substring()
Funktion ist.
Angenommen, Sie benötigen die ersten 5 Zeichen. Sie sollten sie mit der richtigen Prü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 Überprüfung Substring()
würde die Funktion eine Ausnahme auslösen, da sie Buchstaben durchläuft, die nicht vorhanden sind.
Ich denke du kommst auf die Idee ...
Das Problem dabei .Substring(,)
ist, dass Sie sicherstellen müssen, dass die angegebene Zeichenfolge mindestens die Länge der angeforderten Anzahl von Zeichen hat, da sonst eine Zeichenfolge ArgumentOutOfRangeException
ausgelöst wird.
Lösung 1 (unter Verwendung von "Teilstring"):
var firstFive = stringValue != null ?
stringValue.Substring(0, stringValue.Length >= 5 ? 5 : stringValue.Length) :
null;
Der Nachteil der Verwendung .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;
Die Verwendung von 'Take' verhindert, dass Sie die Länge der angegebenen Zeichenfolge überprüfen müssen.
Verwenden Sie die PadRight-Funktion, um zu verhindern, dass die Zeichenfolge zu kurz ist. Nehmen Sie das, was Sie benötigen, und schneiden Sie die Leerzeichen am Ende in einer Anweisung ab.
strSomeString = strSomeString.PadRight(50).Substring(0,50).TrimEnd();
Ich weiß nicht, warum das jemand erwähnt hat. Dies ist jedoch der kürzeste und einfachste Weg, um dies zu erreichen.
string str = yourString.Remove(n);
n
- Anzahl der Zeichen, die Sie benötigen
Beispiel
var zz = "7814148471";
Console.WriteLine(zz.Remove(5));
//result - 78141
Fügen Sie fünf Leerzeichen hinzu, schneiden Sie die ersten fünf ab und schneiden Sie das Ergebnis ab. Die Anzahl der angehängten Leerzeichen sollte mit der Anzahl übereinstimmen, die Sie schneiden. Stellen Sie sicher, dass Sie die Klammern vorher .Substring(0,X)
einfügen, da Sie sonst nichts anhängen.
string str = (yourStringVariable + " ").Substring(0,5).Trim();
Mit dieser Technik müssen Sie sich keine Gedanken über die ArgumentOutOfRangeException
in anderen Antworten genannten machen.
string str = "GoodMorning"
string strModified = str.Substring(0,5);
Nur einen Kopf hoch gibt es eine neue Möglichkeit, dies in C # 8.0 zu tun: Bereichsoperatoren
Oder wie ich sie gerne nenne, Pandas Scheiben.
Alter Weg:
string newString = oldstring.Substring(0, 5);
Neuer Weg:
string newString = oldstring[..5];
Was auf den ersten Blick wie ein ziemlich schlechter Kompromiss zwischen Lesbarkeit und kürzerem Code erscheint, aber die neue Funktion bietet Ihnen
coole Sachen wie diese:
var Slice1 = Liste [2 .. ^ 3]; // list [Range.Create (2, Index.CreateFromEnd (3))]
var Slice2 = Liste [.. ^ 3]; // list [Range.ToEnd (Index.CreateFromEnd (3))]
var Slice3 = Liste [2 ..]; // list [Range.FromStart (2)]
var Slice4 = Liste [..]; // liste [Range.All]
Um die ersten n Zeichen aus einer Zeichenfolge in C # zu erhalten
String yourstring="Some Text";
String first_n_Number_of_Characters=yourstring.Substring(0,n);
Im Folgenden finden Sie eine Erweiterungsmethode, mit der überprüft wird, ob eine Zeichenfolge größer als erforderlich ist, die Zeichenfolge auf die definierte maximale Anzahl von Zeichen verkürzt und "..." angehängt wird.
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;
}
}
In C # 8.0 können Sie die ersten fünf Zeichen einer Zeichenfolge wie folgt abrufen
string str = data[0..5];
Hier finden Sie weitere Informationen zu Indizes und Bereichen
Ich benutze:
var firstFive = stringValue?.Substring(0, stringValue.Length >= 5 ? 5 : customAlias.Length);
oder alternativ, wenn Sie auch nach Whitespace suchen möchten (anstatt nur Null):
var firstFive = !String.IsNullOrWhiteSpace(stringValue) && stringValue.Length >= 5 ? stringValue.Substring(0, 5) : stringValue
Oder Sie könnten String.ToCharArray () verwenden .
Es nimmt int startindex
und und int length
als Parameter und gibt a zurückchar[]
new string(stringValue.ToCharArray(0,5))
Sie müssten immer noch sicherstellen, dass die Zeichenfolge die richtige Länge hat, sonst wird a geworfen ArgumentOutOfRangeException
Bitte versuchen Sie diesen Code, wenn str kleiner als 5 ist.
string strModified = str.Substring(0,str.Length>5?5:str.Length);
Wenn wir nur die ersten 5 Zeichen aus einem Feld wollen, kann dies durch das linke Attribut erreicht werden
Vessel = f.Vessel !=null ? f.Vessel.Left(5) : ""
Versuchen Sie es mit dem folgenden Code
string Name = "Abhishek";
string firstfour = Name.Substring(0, 4);
Response.Write(firstfour);
Ich habe die obigen Antworten ausprobiert und das Beste, was ich denke, ist dieses
@item.First_Name.Substring(0,1)
Darin konnte ich den ersten Buchstaben der Zeichenkette bekommen
char
** s und Sie fragen nach ** Zeichen . Sie sind nicht dasselbe.𣊾
und𣇞
sind zwei Zeichen, die ich erst gestern verwenden musste, was in der in C # geschriebenen Software, die ich verwendet habe, fehlgeschlagen ist, weil der Programmierer den Unterschied zwischen einemchar
und einem Zeichen nicht kannte . Fallen Sie nicht in diese Falle!