C # equivalente a charAt () do Java?

118

Eu sei que podemos usar o charAt()método em Java para obter um caractere individual em uma string especificando sua posição. Existe um método equivalente em C #?

ratty
fonte
Você está procurando uma solução que funcione apenas em strings com garantia de não conter caracteres Unicode diferentes de 16 bits? Ou você está procurando uma solução que funcione em uma string arbitrária?
hippietrail

Respostas:

201

Você pode indexar em uma string em C # como uma matriz e obter o caractere nesse índice.

Exemplo:

Em Java, você diria

str.charAt(8);

Em C #, você diria

str[8];
Zach
fonte
2
Acho que deve ser ressaltado que str.Substring (8,1) funciona como uma solução, mas é muito mais lenta. Só descobri isso da maneira mais difícil.
qzcx
Isso salvou minha vida: D Muito obrigado!
Spidi's Web
0

você pode usar LINQ

string abc = "abc";
char getresult = abc.Where((item, index) => index == 2).Single();
Harshad Karemore
fonte
-1

por favor, tente fazer isso como um personagem

string str = "Tigger";
//then str[0] will return 'T' not "T"
swapnil rawat
fonte
-2

Console.WriteLine permite ao usuário especificar uma posição em uma string.

Veja o exemplo:

string str = "Tigger"; Console.WriteLine (str [0]); // retorna "T"; Console.WriteLine (str [2]); // retorna "g";

Ai está!

AndrewJames57
fonte
-3

Basta usar String.ElementAt(). É bastante semelhante ao de java String.charAt(). Divirta-se codificando!

Nguyễn Trần Hiển
fonte
Por que você usaria um método de extensão IEnumerable, quando você pode simplesmente fazer o que os outros mencionaram há muitos anos? (Indexação de string embutida).
Dave Doknjas