¿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]
¿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]
Just MyString[0]
. Esto usa el indexador String.Chars.
porque una cadena es una matriz !!!!!!! Jeeeeez !!! – Hill
Mystring[0]
debería ser suficiente
No debería 'pasar esos cinco segundos extra escribiendo las palabras, "debería ser suficiente". –
¿Quién respondió esta pregunta primero? –
Seleccione la pestaña más antigua para ver que sea como Matthew – johnc
o se puede hacer esto:
MyString[0];
Sí, creo que ya se ha cubierto la respuesta. –
@Robert, naw, ¡quiero verlo una vez más, solo para estar seguro! – jjnguy
Simplemente no vi las anteriores a la mía :) –
Creo que busca este MyString.ToCharArray()[0]
:)
pero se puede utilizar MyString[0]
también.
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.
Gracias por mencionar 'char?' Como una forma de incluir la posibilidad de que "no hay primer personaje". – ToolmakerSteve
Puede utilizar LINQ
char c = mystring.FirstOrDefault()
Será igual a '\0'
si la cadena está vacía.
Sólo otro enfoque:
string mystr = "hello";
MessageBox.show(mystr.Substring(0, 1));
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
}
"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. –
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
probar esto,
string s1="good"; string s=s1.Substring(0,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
char solo tiene un carácter pero mi solución puede ser resultado más de uno si lo desea. –
Fue solo una precisión, ya que el tipo puede ser importante según lo que quieras hacer con él. – Louhike
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);
¿Cómo es esta una respuesta? – Nilesh
¿Qué aprendiste cuando lo probaste? –
@Michael: Hubo un error de compilación. ¿Cómo se supone que uses ToCharArray si no es así? –
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