@ Michael: Es gab einen Compilerfehler. Wie sollen Sie ToCharArray verwenden, wenn nicht auf diese Weise?
Craig Johnston
3
Wenn es sich bei dem Datensatz ToCharArrayum eine Methode handelt , sollten Sie sie zuerst ausführen, z. B. char[] chars = str.ToCharArray();verwenden char first = chars[0];. Sie können es auch schlachten str.ToCharArray()[0];. Stellen Sie in jedem Fall sicher, dass die Zeichenfolge nicht null ist und mindestens ein Zeichen enthält - Sie können dies mit verwenden if(!String.IsNullOrEmpty(str)).
Kobi
1
Craig .. die Verwendung von ToCharArray ist falsch. Siehe meine Antwort.
Nayan
4
Willst du den ersten charoder den ersten Charakter ? Wenn Sie dies versuchen und es zu funktionieren scheint, versuchen Sie es erneut mit 𣊾oder 𣇞, was beide in einem von mir verwendeten Programm fehlgeschlagen sind, das in C # mit genau diesem Fehler geschrieben wurde.
Hippietrail
Antworten:
382
Einfach MyString[0]. Dies verwendet den String.Chars- Indexer.
Der Unterschied zwischen dieser und der ausgewählten Antwort besteht darin, dass diese Lösung eine Zeichenfolge und die andere ein Zeichen zurückgibt.
Loïc Lopes
char bekommt nur ein Zeichen, aber meine Lösung kann mehr als ein Ergebnis sein, wenn Sie wollen.
Sanjay Kumaar
1
Es war nur eine Präzision, da der Typ von Bedeutung sein kann, je nachdem, was Sie damit machen möchten.
Loïc Lopes
18
Der Unterschied zwischen MyString[0]und MyString.ToCharArray()[0]besteht darin, dass erstere die Zeichenfolge als schreibgeschütztes Array behandelt und gleichzeitig ToCharArray()ein neues Array erstellt. Ersteres wird schneller (zusammen mit einfacher) für fast alles sein, wo es funktionieren wird, aberToCharArray kann jedoch erforderlich sein, wenn Sie eine Methode haben, die ein Array akzeptieren muss, oder wenn Sie das Array ändern möchten.
Wenn nicht bekannt ist, dass die Zeichenfolge nicht null und nicht leer ist, können Sie Folgendes tun:
Richtig ist MyString [Position des Zeichens]. In Ihrem Fall MyString [0] ist 0 das ERSTE Zeichen einer Zeichenfolge.
Ein Zeichenwert wird mit '(einfaches Anführungszeichen) bezeichnet, so wie dieser x-Zeichenwert als' x 'geschrieben wird.
Ein Zeichenfolgenwert wird mit "(doppeltes Anführungszeichen) bezeichnet, so wie dieser x-Zeichenfolgenwert als" x "geschrieben wird.
Die Methode Substring () gibt also auch kein Zeichen zurück, die Methode Substring () gibt einen String zurück !!!
Eine Zeichenfolge ist ein Array von Zeichen, und das letzte Zeichen muss das Zeichen '\ 0' (null) sein. Das ist der Unterschied zwischen Zeichenarray und Zeichenfolge (dies ist ein Array von Zeichen mit dem letzten Zeichen als "Ende der Zeichenfolgenmarkierung" '\ 0' null.
Beachten Sie auch, dass 'x' NICHT gleich "x" ist. Weil "x" eigentlich 'x' + '\ 0' ist.
ToCharArray
um eine Methode handelt , sollten Sie sie zuerst ausführen, z. B.char[] chars = str.ToCharArray();
verwendenchar first = chars[0];
. Sie können es auch schlachtenstr.ToCharArray()[0];
. Stellen Sie in jedem Fall sicher, dass die Zeichenfolge nicht null ist und mindestens ein Zeichen enthält - Sie können dies mit verwendenif(!String.IsNullOrEmpty(str))
.char
oder den ersten Charakter ? Wenn Sie dies versuchen und es zu funktionieren scheint, versuchen Sie es erneut mit𣊾
oder𣇞
, was beide in einem von mir verwendeten Programm fehlgeschlagen sind, das in C # mit genau diesem Fehler geschrieben wurde.Antworten:
Einfach
MyString[0]
. Dies verwendet den String.Chars- Indexer.quelle
Mystring[0]
sollte genug seinquelle
Versuche dies,
string s1="good"; string s=s1.Substring(0,1);
quelle
Der Unterschied zwischen
MyString[0]
undMyString.ToCharArray()[0]
besteht darin, dass erstere die Zeichenfolge als schreibgeschütztes Array behandelt und gleichzeitigToCharArray()
ein neues Array erstellt. Ersteres wird schneller (zusammen mit einfacher) für fast alles sein, wo es funktionieren wird, aberToCharArray
kann jedoch erforderlich sein, wenn Sie eine Methode haben, die ein Array akzeptieren muss, oder wenn Sie das Array ändern möchten.Wenn nicht bekannt ist, dass die Zeichenfolge nicht null und nicht leer ist, können Sie Folgendes tun:
char?
Dies gibt je nach Bedarf ein Nullzeichen oder das erste Zeichen in der Zeichenfolge zurück.quelle
char?
als Möglichkeit, die Möglichkeit "Es gibt kein erstes Zeichen" aufzunehmen.Sie können LINQ verwenden
Es ist gleich,
'\0'
wenn die Zeichenfolge leer ist.quelle
Oder Sie können dies tun:
quelle
Nur ein weiterer Ansatz:
quelle
Ich denke du suchst das
MyString.ToCharArray()[0]
:) :)
Aber Sie können auch verwenden
MyString[0]
.quelle
MyString.Remove (1, 2); funktioniert auch
quelle
Das folgende Beispiel zum Abrufen des ersten Zeichens aus einer Zeichenfolge kann jemandem helfen
quelle
Die Antwort auf Ihre Frage lautet NEIN.
Richtig ist MyString [Position des Zeichens]. In Ihrem Fall MyString [0] ist 0 das ERSTE Zeichen einer Zeichenfolge.
Ein Zeichenwert wird mit '(einfaches Anführungszeichen) bezeichnet, so wie dieser x-Zeichenwert als' x 'geschrieben wird.
Ein Zeichenfolgenwert wird mit "(doppeltes Anführungszeichen) bezeichnet, so wie dieser x-Zeichenfolgenwert als" x "geschrieben wird.
Die Methode Substring () gibt also auch kein Zeichen zurück, die Methode Substring () gibt einen String zurück !!!
Eine Zeichenfolge ist ein Array von Zeichen, und das letzte Zeichen muss das Zeichen '\ 0' (null) sein. Das ist der Unterschied zwischen Zeichenarray und Zeichenfolge (dies ist ein Array von Zeichen mit dem letzten Zeichen als "Ende der Zeichenfolgenmarkierung" '\ 0' null.
Beachten Sie auch, dass 'x' NICHT gleich "x" ist. Weil "x" eigentlich 'x' + '\ 0' ist.
quelle
In C # 8 können Sie Bereiche verwenden.
Fügen Sie ein
?
After hinzumyString
, umnull
Zeichenfolgen zu verarbeiten .quelle
Das Abrufen eines Zeichens aus einer Zeichenfolge kann von der Folge abhängen (die Zeichenfolge ist standardmäßig UTF-16).
https://stackoverflow.com/a/32141891
quelle