web-dev-qa-db-fra.com

Obtenir le ASCII Valeur d'un caractère dans une chaîne C #

Considérons la chaîne:

string str="A C# string";

Quel serait le moyen le plus efficace d’imprimer la valeur ASCII de chaque caractère de str avec C #.

17
Shamim Hafiz

Voici une alternative puisque vous n'aimez pas le casting de int:

foreach(byte b in System.Text.Encoding.UTF8.GetBytes(str.ToCharArray()))
    Console.Write(b.ToString());
10
Joel Etherton

Il suffit de lancer chaque personnage dans un int:

for (int i = 0; i < str.length; i++)  
  Console.Write(((int)str[i]).ToString());
21
Jorge Córdoba

Cet exemple pourrait vous aider. en utilisant un simple casting, vous pouvez obtenir du code derrière le caractère ourdou.

string str = "عثمان";
        char ch = ' ';
        int number = 0;
        for (int i = 0; i < str.Length; i++)
        {
            ch = str[i];
            number = (int)ch;
            Console.WriteLine(number);
        }
3
Ammar

Voici une autre alternative. Cela vous donnera bien sûr un mauvais résultat si le caractère d’entrée n’est pas ascii. Je ne l'ai pas encore testé, mais je pense ce serait assez rapide:

[MethodImpl(MethodImplOptions.AggressiveInlining)]
private static int GetAsciiVal(string s, int index) {
    return GetAsciiVal(s[index]);
}

[MethodImpl(MethodImplOptions.AggressiveInlining)]
private static int GetAsciiVal(char c) {
    return unchecked(c & 0xFF);
}
0
noctonura