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


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];

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

-1

por favor, tente fazer isso como um personagem

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

-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á!


-3

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


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.