C#で文字列内の文字のASCII値を取得したい。
文字列の値が「9quali52ty3」の場合、11文字のそれぞれのASCII値の配列が必要です。
C#でASCII値を取得するにはどうすればよいですか?
C#で文字列内の文字のASCII値を取得したい。
文字列の値が「9quali52ty3」の場合、11文字のそれぞれのASCII値の配列が必要です。
C#でASCII値を取得するにはどうすればよいですか?
回答:
MSDNから
string value = "9quali52ty3";
// Convert the string into a byte[].
byte[] asciiBytes = Encoding.ASCII.GetBytes(value);
これで、バイトのASCII値の配列ができました。私は以下を得ました:
57113117 97108105 53 50116121 51
Encoding.ASCII
は、ASCII文字セットにない文字の置換文字(「?」)のASCIIコード単位を出力するように構成されています。例外のスローを含むその他のオプションは、Encoding
クラスで使用できます。そしてもちろん、他の文字エンコーディング、特にUTF-8も利用できます。実際に必要なのがASCIIかどうかを質問する必要があります。
string s = "9quali52ty3";
foreach(char c in s)
{
Console.WriteLine((int)c);
}
数字だけでなくアルファベット文字だけが欲しいということですか?結果として「品質」が必要ですか?Char.IsLetterまたはChar.IsDigitを使用して、1つずつフィルターで除外できます。
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]);
}
文字列の各文字の文字コードが必要な場合は、次のようにすることができます。
char[] chars = "9quali52ty3".ToCharArray();
以前の回答者は質問に答えましたが、タイトルが私に期待させる情報を提供していません。1文字の文字列を返すメソッドがありましたが、16進数に変換できる文字が必要でした。次のコードは、他の人に役立つことを期待して見つけたと思うものを示しています。
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);
上記のコードは、以下をイミディエイトウィンドウに出力します。
a£Δ√
a 97 61
£163 A3
Δ916 394
√8730 221A
以下を使用してBOMを削除できます。
//Create a character to compare BOM
char byteOrderMark = (char)65279;
if (sourceString.ToCharArray()[0].Equals(byteOrderMark))
{
targetString = sourceString.Remove(0, 1);
}
C#で文字列内の文字のASCII値を取得したい。
誰もがこの構造で答えを与えます。文字列の値が「9quali52ty3」の場合、11文字のそれぞれのASCII値の配列が必要です。
しかし、コンソールでは率直に作業しているので、間違っている場合はcharを取得してASCIIコードを出力するので、私の答えを修正してください。
static void Main(string[] args)
{
Console.WriteLine(Console.Read());
Convert.ToInt16(Console.Read());
Console.ReadKey();
}
string nomFile = "9quali52ty3";
byte[] nomBytes = Encoding.ASCII.GetBytes(nomFile);
string name = "";
foreach (byte he in nomBytes)
{
name += he.ToString("X02");
}
`
Console.WriteLine(name);
//今より良いです;)