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 #?

schäbig
quelle
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];
Zach
quelle
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();
Harshad Karemore
quelle
-1

Bitte versuchen Sie es als Charakter zu machen

string str = "Tigger";
//then str[0] will return 'T' not "T"
Swapnil Rawat
quelle
-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!

AndrewJames57
quelle
-3

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

Nguyễn Trần Hiển
quelle
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