web-dev-qa-db-ja.com

ASCII C#文字列の文字の値を取得する

文字列を考えます:

string str="A C# string";

C#を使用してstrの各文字のASCII値を印刷する最も効率的な方法は何でしょうか。

21
Shamim Hafiz

Intへのキャストが気に入らないので、代替手段を次に示します。

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

各文字をintにキャストするだけです:

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

この例が役立つかもしれません。単純なキャストを使用すると、ウルドゥー語のキャラクターの背後にあるコードを取得できます。

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

別の選択肢があります。入力文字がasciiでない場合、当然、悪い結果が得られます。私はそれをテストしていませんが、私は思考それはかなり速いでしょう:

[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