2010-10-07 20 views
105

¿Se puede recuperar el primer char de una cadena haciendo lo siguiente?C#: ¿cómo obtener el primer carácter de una cuerda?

MyString.ToCharArray[0] 
+4

¿Qué aprendiste cuando lo probaste? –

+1

@Michael: Hubo un error de compilación. ¿Cómo se supone que uses ToCharArray si no es así? –

+3

Para el registro, 'ToCharArray' es un * método *, debe ejecutarlo primero, por ejemplo' char [] chars = str.ToCharArray(); ', y luego usar' char first = chars [0]; '. También puedes eliminarlo en 'str.ToCharArray() [0];'. De cualquier manera, asegúrese de verificar que la cadena no sea nula y tenga al menos un carácter; puede hacerlo usando 'if (! String.IsNullOrEmpty (str))'. – Kobi

Respuesta

247

Just MyString[0]. Esto usa el indexador String.Chars.

+0

porque una cadena es una matriz !!!!!!! Jeeeeez !!! – Hill

37

Mystring[0] debería ser suficiente

+33

No debería 'pasar esos cinco segundos extra escribiendo las palabras, "debería ser suficiente". –

+0

¿Quién respondió esta pregunta primero? –

+0

Seleccione la pestaña más antigua para ver que sea como Matthew – johnc

5

o se puede hacer esto:

MyString[0]; 
+6

Sí, creo que ya se ha cubierto la respuesta. –

+4

@Robert, naw, ¡quiero verlo una vez más, solo para estar seguro! – jjnguy

+1

Simplemente no vi las anteriores a la mía :) –

4

Creo que busca este MyString.ToCharArray()[0]

:)

pero se puede utilizar MyString[0] también.

15

La diferencia entre MyString[0] y MyString.ToCharArray()[0] es que la primera trata la cadena como una matriz de solo lectura, mientras que ToCharArray() crea una nueva matriz. El primero será más rápido (y más fácil) para casi cualquier cosa donde funcione, pero puede ser necesario ToCharArray si tiene un método que necesita aceptar una matriz o si desea cambiar la matriz.

Si la cadena no se sabe que es no nulo y no vacío que podría hacer:

string.IsNullOrEmpty(MyString) ? (char?)null : MyString[0] 

que devuelve un char? de null o el primer carácter de la cadena, según el caso.

+0

Gracias por mencionar 'char?' Como una forma de incluir la posibilidad de que "no hay primer personaje". – ToolmakerSteve

11

Puede utilizar LINQ

char c = mystring.FirstOrDefault() 

Será igual a '\0' si la cadena está vacía.

6

Sólo otro enfoque:

string mystr = "hello"; 
MessageBox.show(mystr.Substring(0, 1)); 
-4

La respuesta declarado no funcionó para mí por alguna razón. Dije que no podía comparar un tipo Char con una cadena tipo. Así que hice esto:

string allInts = new String(telePhone.Where(Char.IsDigit).ToArray()); 

if (allInts[0].ToString() == "1") 
{ 
    ...yada 
} 
+3

"Por alguna razón". ¿Qué tal "funcionó perfectamente, pero luego trataste de comparar una cadena con un personaje"? 's [0] == '1''. Las comillas simples significan un personaje. Las comillas dobles son una cadena. No publique "respuestas" sobre un idioma que no se haya molestado en comenzar a aprender. –

+0

Intento no "acumular" una respuesta incorrecta, pero, como dijo Ed. El compilador incluso te dijo lo que hiciste mal. Cuando recibiste ese mensaje, ¿google * el mensaje de error * antes de publicarlo? ¿Tomó * tiempo para leer sobre * caracteres y cadenas en C#? * ¿Busca ejemplos * de trabajo con caracteres y cadenas? P.S .: ¿Sabe que puede * eliminar su respuesta *, una vez que se ha señalado que no es útil? – ToolmakerSteve

6

probar esto,

string s1="good"; string s=s1.Substring(0,1);

+1

La diferencia entre esta respuesta y la elegida es que esta solución devuelve una cadena y la otra devuelve un carácter. – Louhike

+0

char solo tiene un carácter pero mi solución puede ser resultado más de uno si lo desea. –

+0

Fue solo una precisión, ya que el tipo puede ser importante según lo que quieras hacer con él. – Louhike

0

conseguir un char de una cadena puede depender de la Enconding (string predeterminado es UTF-16)

https://stackoverflow.com/a/32141891

string str = new String(new char[] { '\uD800', '\uDC00', 'z' }); 
string first = str.Substring(0, char.IsHighSurrogate(str[0]) ? 2 : 1); 
+0

¿Cómo es esta una respuesta? – Nilesh

Cuestiones relacionadas