¿C # equivalente a charAt () de Java?

118

Sé que podemos usar el charAt()método en Java para obtener un carácter individual en una cadena especificando su posición. ¿Existe un método equivalente en C #?

andrajoso
fuente
¿Está buscando una solución que solo funcione en cadenas que garanticen que no contienen caracteres Unicode que no sean de 16 bits? ¿O está buscando una solución que funcione en una cadena arbitraria?
hippietrail

Respuestas:

201

Puede indexar en una cadena en C # como una matriz, y obtiene el carácter en ese índice.

Ejemplo:

En Java, dirías

str.charAt(8);

En C #, dirías

str[8];
Zach
fuente
2
Creo que debe señalarse que str.Substring (8,1) funciona como solución, pero es mucho más lento. Lo acabo de descubrir por las malas.
qzcx
Esto me salvó la vida: D ¡Muchas gracias!
Web de Spidi
0

puedes usar LINQ

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

por favor intenta hacerlo como un personaje

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

Console.WriteLine permite al usuario especificar una posición en una cadena.

Ver muestra:

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

¡Ahí tienes!

AndrewJames57
fuente
-3

Simplemente use String.ElementAt(). Es bastante similar al de Java String.charAt(). ¡Diviértete codificando!

Nguyễn Trần Hiển
fuente
¿Por qué usaría un método de extensión IEnumerable, cuando puede hacer lo que los demás mencionaron hace muchos años? (Indexación de cadenas incorporada).
Dave Doknjas