Quiero obtener el valor ASCII de los caracteres en una cadena en C #.
Si mi cadena tiene el valor "9quali52ty3", quiero una matriz con los valores ASCII de cada uno de los 11 caracteres.
¿Cómo puedo obtener valores ASCII en C #?
Quiero obtener el valor ASCII de los caracteres en una cadena en C #.
Si mi cadena tiene el valor "9quali52ty3", quiero una matriz con los valores ASCII de cada uno de los 11 caracteres.
¿Cómo puedo obtener valores ASCII en C #?
Respuestas:
De MSDN
string value = "9quali52ty3";
// Convert the string into a byte[].
byte[] asciiBytes = Encoding.ASCII.GetBytes(value);
Ahora tiene una matriz del valor ASCII de los bytes. Tengo lo siguiente:
57113117 97108105 53 50116121 51
Encoding.ASCII
está configurado para emitir la unidad de código ASCII para el carácter de reemplazo ('?') Para caracteres que no están en el juego de caracteres ASCII. Otras opciones, incluido el lanzamiento de una excepción, están disponibles en la Encoding
clase. Y, por supuesto, también están disponibles otras codificaciones de caracteres, especialmente UTF-8; Uno debería preguntarse si es ASCII lo que realmente se busca.
string s = "9quali52ty3";
foreach(char c in s)
{
Console.WriteLine((int)c);
}
¿Quiere decir que solo quiere los caracteres alfabéticos y no los dígitos? ¿Entonces quieres "calidad" como resultado? Puede utilizar Char.IsLetter o Char.IsDigit para filtrarlos uno por uno.
string s = "9quali52ty3";
StringBuilder result = new StringBuilder();
foreach(char c in s)
{
if (Char.IsLetter(c))
result.Add(c);
}
Console.WriteLine(result); // quality
string value = "mahesh";
// Convert the string into a byte[].
byte[] asciiBytes = Encoding.ASCII.GetBytes(value);
for (int i = 0; i < value.Length; i++)
{
Console.WriteLine(value.Substring(i, 1) + " as ASCII value of: " + asciiBytes[i]);
}
Si desea el código de caracteres para cada carácter de la cadena, puede hacer algo como esto:
char[] chars = "9quali52ty3".ToCharArray();
Los que respondieron anteriormente han respondido la pregunta pero no han proporcionado la información que el título me hizo esperar. Tenía un método que devolvía una cadena de un carácter, pero quería un carácter que pudiera convertir a hexadecimal. El siguiente código demuestra lo que pensé que encontraría con la esperanza de que sea útil para otros.
string s = "\ta£\x0394\x221A"; // tab; lower case a; pound sign; Greek delta;
// square root
Debug.Print(s);
char c = s[0];
int i = (int)c;
string x = i.ToString("X");
c = s[1];
i = (int)c;
x = i.ToString("X");
Debug.Print(c.ToString() + " " + i.ToString() + " " + x);
c = s[2];
i = (int)c;
x = i.ToString("X");
Debug.Print(c.ToString() + " " + i.ToString() + " " + x);
c = s[3];
i = (int)c;
x = i.ToString("X");
Debug.Print(c.ToString() + " " + i.ToString() + " " + x);
c = s[4];
i = (int)c;
x = i.ToString("X");
Debug.Print(c.ToString() + " " + i.ToString() + " " + x);
El código anterior genera lo siguiente en la ventana inmediata:
a£Δ√
un 97 61
163 £ A3
Δ 916 394
√ 8730 221A
Puede eliminar la lista de materiales usando:
//Create a character to compare BOM
char byteOrderMark = (char)65279;
if (sourceString.ToCharArray()[0].Equals(byteOrderMark))
{
targetString = sourceString.Remove(0, 1);
}
Quiero obtener el valor ASCII de los caracteres en una cadena en C #.
Todos confieren respuesta en esta estructura. Si mi cadena tiene el valor "9quali52ty3", quiero una matriz con los valores ASCII de cada uno de los 11 caracteres.
pero en la consola trabajamos con franqueza, por lo que obtenemos un carácter e imprimimos el código ASCII si me equivoco, así que corrija mi respuesta.
static void Main(string[] args)
{
Console.WriteLine(Console.Read());
Convert.ToInt16(Console.Read());
Console.ReadKey();
}
¿Por qué no de la manera fácil a la antigua?
public int[] ToASCII(string s)
{
char c;
int[] cByte = new int[s.Length]; / the ASCII string
for (int i = 0; i < s.Length; i++)
{
c = s[i]; // get a character from the string s
cByte[i] = Convert.ToInt16(c); // and convert it to ASCII
}
return cByte;
}
string nomFile = "9quali52ty3";
byte[] nomBytes = Encoding.ASCII.GetBytes(nomFile);
string name = "";
foreach (byte he in nomBytes)
{
name += he.ToString("X02");
}
`
Console.WriteLine(name);
// es` mejor ahora;)