web-dev-qa-db-ja.com

数値をASCII文字に変換するには?

ユーザーが数字を入力し、プログラムがユーザーに文字を返すアプリケーションを作成したい。

編集:アスキー文字を数字に変更する場合はどうですか?

20
Cyrax Nguyen

次のいずれかの方法を使用して、数値をASCII/Unicode/UTF-16文字に変換できます。

これらのメソッドを使用して、指定された32ビット符号付き整数の値をUnicode文字に変換できます。

char c = (char)65;
char c = Convert.ToChar(65); 

また、 ASCII.GetString バイト配列から一連のバイトを文字列にデコードします。

string s = Encoding.ASCII.GetString(new byte[]{ 65 });

ASCIIEncodingはエラー検出を提供しないことに注意してください。 16進数の0x7Fより大きいバイトは、Unicodeの疑問符( "?")としてデコードされます。

43
Farhad Jabiyev

編集:リクエストにより、入力した値がASCII 0から127の範囲内であることを確認するチェックを追加しました。これを制限するかどうかはあなた次第です。C#(およびI一般に.NETを信じる)、charsはUTF-16を使用して表されるため、有効なUTF-16文字値をキャストできますが、システムはすべてのUnicode文字がどのように見えるべきかを知らない可能性がありますので、それが誤って表示される場合があります。

// Read a line of input
string input = Console.ReadLine();

int value;
// Try to parse the input into an Int32
if (Int32.TryParse(input, out value)) {
    // Parse was successful
    if (value >= 0 and value < 128) {
        //value entered was within the valid ASCII range
        //cast value to a char and print it
        char c = (char)value;
        Console.WriteLine(c);
    }
}
5
Cemafor

ASCIIを数値にするには、char値を整数にキャストするだけです。

char ascii = 'a'
int value = (int)ascii

変数値は97になり、そのASCII文字の値に対応します

(参照用にこのリンクを使用してください) http://www.asciitable.com/index/asciifull.gif

3
StevenTsooo

単純にキャストできます。

char c = (char)100;
2
sora0419

C#は、ASCIIではなくUTF-16コーディングの文字を表します。したがって、整数を文字に変換しても、A-Zとa-zに違いはありません。しかし、私はASCIIシステムはUTF-16コードを使用しているので機能しなかったアルファベットと数字以外のコードを使用していました。したがって、すべてのUTF-16文字のUTF-16コードを参照しました。モジュール:

void utfchars()
{
 int i, a, b, x;
 ConsoleKeyInfo z;
  do
  {
   a = 0; b = 0; Console.Clear();
    for (i = 1; i <= 10000; i++)
    {
     if (b == 20)
     {
      b = 0;
      a = a + 1;
     }
    Console.SetCursorPosition((a * 15) + 1, b + 1);
    Console.Write("{0} == {1}", i, (char)i);
   b = b+1;
   if (i % 100 == 0)
  {
 Console.Write("\n\t\t\tPress any key to continue {0}", b);
 a = 0; b = 0;
 Console.ReadKey(true); Console.Clear();
 }
}
Console.Write("\n\n\n\n\n\n\n\t\t\tPress any key to Repeat and E to exit");
z = Console.ReadKey();
if (z.KeyChar == 'e' || z.KeyChar == 'E') Environment.Exit(0);
} while (1 == 1);
}
1
Olxi Suresh

私はintをcharに変換する方法をグーグルで探していました。しかし、私の質問は、たとえば6のintを '6'のcharに変換することでした。私のようにここに来た人のために、これはそれを行う方法です:

int num = 6;
num.ToString().ToCharArray()[0];
1
Rafe