2010-08-27 27 views
87

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

+0

¿Está buscando una solución que solo funcione en cadenas garantizadas que no contengan ningún carácter Unicode que no sea de 16 bits? ¿O está buscando una solución que funcione en una cadena arbitraria? – hippietrail

Respuesta

149

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

Ejemplo:

En Java, se podría decir

str.charAt(8); 

En C#, se diría

str[8]; 
+1

Creo que debería señalarse que str.Substring (8, 1) funciona como una solución, pero es mucho más lento. Lo descubrí por el camino difícil. – qzcx

+0

Esto me salvó la vida: D ¡Muchas gracias! –

+0

'str [8];' devuelve el código char como 'int32' no como' char' –

-1

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

ver ejemplo:

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

¡Ya lo tiene!

+9

este tema, y ​​su respuesta, no tiene nada que ver con WriteLine ... – Jonathan

-1

favor tratar de hacerlo como un personaje

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

puede utilizar LINQ

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

Sólo tiene que utilizar String.ElementAt(). Es bastante similar al String.charAt() de java. Diviértete codificando!

+0

¿Por qué usaría un método de extensión IEnumerable, cuando puedes hacer lo que los otros mencionaron hace muchos años? (Indexación de cadenas incorporada). –