Je souhaite obtenir la valeur ASCII des caractères d'une chaîne en C #.
Si ma chaîne a la valeur "9quali52ty3", je veux un tableau avec les valeurs ASCII de chacun des 11 caractères.
Comment puis-je obtenir les valeurs ASCII en C #?
De MSDN
string value = "9quali52ty3";
// Convert the string into a byte[].
byte[] asciiBytes = Encoding.ASCII.GetBytes(value);
Vous avez maintenant un tableau de la valeur ASCII des octets. J'ai eu ce qui suit:
57 ans
string s = "9quali52ty3";
foreach(char c in s)
{
Console.WriteLine((int)c);
}
Cela devrait fonctionner:
string s = "9quali52ty3";
byte[] ASCIIValues = Encoding.ASCII.GetBytes(s);
foreach(byte b in ASCIIValues) {
Console.WriteLine(b);
}
Voulez-vous dire que vous ne voulez que les caractères alphabétiques et non les chiffres? Vous voulez donc de la "qualité"? Vous pouvez utiliser Char.IsLetter ou Char.IsDigit pour les filtrer un par un.
string s = "9quali52ty3";
StringBuilder result = new StringBuilder();
foreach(char c in s)
{
if (Char.IsLetter(c))
result.Add(c);
}
Console.WriteLine(result); // quality
byte[] asciiBytes = Encoding.ASCII.GetBytes("Y");
foreach (byte b in asciiBytes)
{
MessageBox.Show("" + b);
}
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]);
}
Ce programme acceptera plus d'un caractère et affichera sa valeur ASCII:
using System;
class ASCII
{
public static void Main(string [] args)
{
string s;
Console.WriteLine(" Enter your sentence: ");
s = Console.ReadLine();
foreach (char c in s)
{
Console.WriteLine((int)c);
}
}
}
Vous pouvez supprimer le BOM en utilisant:
//Create a character to compare BOM
char byteOrderMark = (char)65279;
if (sourceString.ToCharArray()[0].Equals(byteOrderMark))
{
targetString = sourceString.Remove(0, 1);
}
string text = "ABCD";
for (int i = 0; i < text.Length; i++)
{
Console.WriteLine(text[i] + " => " + Char.ConvertToUtf32(text, i));
}
Si je me souviens bien, la valeur ASCII est le numéro des sept bits inférieurs du nombre Unicode .
Si vous voulez le charcode pour chaque caractère de la chaîne, vous pouvez faire quelque chose comme ceci:
char[] chars = "9quali52ty3".ToCharArray();
Ou dans LINQ:
string value = "9quali52ty3";
var ascii_values = value.Select(x => (int)x);
var as_hex = value.Select(x => ((int)x).ToString("X02"));
Les répondants précédents ont répondu à la question mais n'ont pas fourni les informations auxquelles le titre m'attendait. J'avais une méthode qui renvoyait une chaîne de caractères mais Je voulais un caractère que je pourrais convertir en hexadécimal. Le code suivant montre ce que je pensais pouvoir trouver dans l’espoir d’être utile aux autres.
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);
Le code ci-dessus renvoie les éléments suivants dans la fenêtre immédiate:
a£Δ√
a 97 61
£ 163 A3
Δ 916 394
√ 8730 221A
Pourquoi pas le moyen facile démodé?
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;
}
Je souhaite obtenir la valeur ASCII des caractères d'une chaîne en C #.
Tout le monde confère une réponse dans cette structure . Si ma chaîne a la valeur "9quali52ty3", je veux un tableau avec les valeurs ASCII de chacun des 11 caractères.
mais en console, nous travaillons avec franchise afin d’obtenir un caractère et d’imprimer le code ASCII si je me trompe; corrigez donc ma réponse.
static void Main(string[] args)
{
Console.WriteLine(Console.Read());
Convert.ToInt16(Console.Read());
Console.ReadKey();
}