Je veux obtenir la valeur ASCII des caractères dans 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 des valeurs ASCII en C #?
Je veux obtenir la valeur ASCII des caractères dans 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 des valeurs ASCII en C #?
Réponses:
Depuis 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 obtenu ce qui suit:
57113117 97108105 53 50116121 51
Encoding.ASCII
est configuré pour émettre l'unité de code ASCII pour le caractère de remplacement ('?') Pour les caractères qui ne sont pas dans le jeu de caractères ASCII. D'autres options, y compris la levée d'une exception, sont disponibles dans la Encoding
classe. Et, bien sûr, d'autres encodages de caractères - en particulier UTF-8 - sont également disponibles; Il faut se demander si c'est l'ASCII qui est réellement recherché.
string s = "9quali52ty3";
foreach(char c in s)
{
Console.WriteLine((int)c);
}
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
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 vous voulez le charcode pour chaque caractère de la chaîne, vous pouvez faire quelque chose comme ceci:
char[] chars = "9quali52ty3".ToCharArray();
Les premiers répondants ont répondu à la question mais n'ont pas fourni les informations auxquelles le titre m'avait amené à m'attendre. J'avais une méthode qui renvoyait une chaîne d'un caractère mais je voulais un caractère que je pourrais convertir en hexadécimal. Le code suivant montre ce que je pensais trouver dans l'espoir qu'il soit 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 affiche les éléments suivants dans la fenêtre immédiate:
a£Δ√
un 97 61
163 £ A3
Δ 916 394
√ 8730 221A
Vous pouvez supprimer la nomenclature en utilisant:
//Create a character to compare BOM
char byteOrderMark = (char)65279;
if (sourceString.ToCharArray()[0].Equals(byteOrderMark))
{
targetString = sourceString.Remove(0, 1);
}
Je veux obtenir la valeur ASCII des caractères dans une chaîne en C #.
Tout le monde confère la 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 dans la console, nous travaillons la franchise donc nous obtenons un caractère et imprimons le code ASCII si je me trompe, veuillez donc corriger ma réponse.
static void Main(string[] args)
{
Console.WriteLine(Console.Read());
Convert.ToInt16(Console.Read());
Console.ReadKey();
}
Pourquoi pas la méthode facile à l'ancienne?
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);
// c'est `mieux maintenant;)