C # entspricht Javas charAt ()?


118

Ich weiß, dass wir die charAt()Methode in Java verwenden können, um ein einzelnes Zeichen in einer Zeichenfolge zu erhalten, indem wir seine Position angeben. Gibt es eine äquivalente Methode in C #?


Suchen Sie nach einer Lösung, die nur mit Zeichenfolgen funktioniert, die garantiert keine Nicht-16-Bit-Unicode-Zeichen enthalten? Oder suchen Sie nach einer Lösung, die mit einer beliebigen Zeichenfolge funktioniert?
Hippietrail

Antworten:


201

Sie können wie ein Array in eine Zeichenfolge in C # indizieren und erhalten das Zeichen an diesem Index.

Beispiel:

In Java würde man sagen

str.charAt(8);

In C # würde man sagen

str[8];

2
Ich denke, es sollte darauf hingewiesen werden, dass str.Substring (8,1) als Lösung funktioniert, aber es ist viel langsamer. Hab das gerade auf die harte Tour herausgefunden.
QZCX

Das hat mir das Leben gerettet: D Vielen Dank!
Spidis Web


0

Sie können LINQ verwenden

string abc = "abc";
char getresult = abc.Where((item, index) => index == 2).Single();

-1

Bitte versuchen Sie es als Charakter zu machen

string str = "Tigger";
//then str[0] will return 'T' not "T"

-2

Mit Console.WriteLine kann der Benutzer eine Position in einer Zeichenfolge angeben.

Siehe Beispiel:

string str = "Tigger"; Console.WriteLine (str [0]); // gibt "T" zurück; Console.WriteLine (str [2]); // gibt "g" zurück;

Los geht's!


-3

Einfach benutzen String.ElementAt(). Es ist Java ziemlich ähnlich String.charAt(). Viel Spaß beim Codieren!


Warum sollten Sie eine IEnumerable-Erweiterungsmethode verwenden, wenn Sie nur das tun können, was die anderen vor vielen Jahren erwähnt haben? (Integrierte String-Indizierung).
Dave Doknjas
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.