wake-up-neo.com

So erhalten Sie die ersten fünf Zeichen einer Zeichenfolge

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?

94
Knight Wing

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. 

  • Die andere Möglichkeit ist, String.Substring mit Fehlerprüfung zu verwenden

mögen:

string firstFivCharWithSubString = 
    !String.IsNullOrWhiteSpace(yourStringVariable) && yourStringVariable.Length >= 5
    ? yourStringVariable.Substring(0, 5)
    : yourStringVariable;
169
Habib

Bitte versuche:

yourString.Substring(0, 5);

Überprüfen Sie C # Substring , String.Substring-Methode

41
TechDo

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);
30
Adil

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 ...

21
ilter

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.

14
Steven

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
11

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.

6
alikerim
string str = "GoodMorning"

string strModified = str.Substring(0,5);
5
Rajeev Kumar

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();
2
ChrisF

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);
1
saleem kalro

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;
    }
}
1
Peter

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) : ""
0
Yasir Iqbal

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.

0
sjokkogutten

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
0
Spegeli

Bitte versuchen Sie diesen Code, wenn str kleiner als 5 ist.

string strModified = str.Substring(0,str.Length>5?5:str.Length);
0
Saket Yadav