Saya ingin mendapatkan nilai karakter ASCII dalam string di C #.
Jika string saya memiliki nilai "9quali52ty3", saya ingin array dengan nilai ASCII dari masing-masing 11 karakter.
Bagaimana saya bisa mendapatkan nilai ASCII di C #?
Saya ingin mendapatkan nilai karakter ASCII dalam string di C #.
Jika string saya memiliki nilai "9quali52ty3", saya ingin array dengan nilai ASCII dari masing-masing 11 karakter.
Bagaimana saya bisa mendapatkan nilai ASCII di C #?
Jawaban:
Dari MSDN
string value = "9quali52ty3";
// Convert the string into a byte[].
byte[] asciiBytes = Encoding.ASCII.GetBytes(value);
Anda sekarang memiliki larik nilai ASCII byte. Saya mendapatkan yang berikut:
57113 117 97108105 53 50116121 51
Encoding.ASCII
dikonfigurasi untuk mengeluarkan unit kode ASCII untuk karakter pengganti ('?') Untuk karakter yang tidak ada dalam kumpulan karakter ASCII. Opsi lain — termasuk melempar pengecualian — tersedia di Encoding
kelas. Dan, tentu saja, pengkodean karakter lain — terutama UTF-8 — juga tersedia; Orang harus mempertanyakan apakah ASCII yang benar-benar diinginkan.
string s = "9quali52ty3";
foreach(char c in s)
{
Console.WriteLine((int)c);
}
Apakah maksud Anda Anda hanya menginginkan karakter abjad dan bukan angka? Jadi, Anda menginginkan "kualitas" sebagai hasilnya? Anda dapat menggunakan Char.IsLetter atau Char.IsDigit untuk memfilternya satu per satu.
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]);
}
Jika Anda menginginkan kode karakter untuk setiap karakter dalam string, Anda dapat melakukan sesuatu seperti ini:
char[] chars = "9quali52ty3".ToCharArray();
byte[] asciiBytes = Encoding.ASCII.GetBytes("Y");
foreach (byte b in asciiBytes)
{
MessageBox.Show("" + b);
}
Program ini akan menerima lebih dari satu karakter dan mengeluarkan nilai ASCII-nya:
using System;
class ASCII
{
public static void Main(string [] args)
{
string s;
Console.WriteLine(" Enter your sentence: ");
s = Console.ReadLine();
foreach (char c in s)
{
Console.WriteLine((int)c);
}
}
}
Responden sebelumnya telah menjawab pertanyaan tetapi belum memberikan informasi yang saya harapkan dari judul. Saya memiliki metode yang mengembalikan string satu karakter tetapi saya menginginkan karakter yang dapat saya ubah menjadi heksadesimal. Kode berikut menunjukkan apa yang saya pikir akan saya temukan dengan harapan berguna bagi orang lain.
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);
Kode di atas menampilkan yang berikut ke jendela langsung:
a£Δ√
a 97 61
£ 163 A3
Δ 916 394
√ 8730 221A
Anda dapat menghapus BOM menggunakan:
//Create a character to compare BOM
char byteOrderMark = (char)65279;
if (sourceString.ToCharArray()[0].Equals(byteOrderMark))
{
targetString = sourceString.Remove(0, 1);
}
Saya ingin mendapatkan nilai karakter ASCII dalam string di C #.
Setiap orang memberikan jawaban dalam struktur ini. Jika string saya memiliki nilai "9quali52ty3", saya ingin array dengan nilai ASCII dari masing-masing 11 karakter.
tetapi di konsol kami bekerja terus terang jadi kami mendapatkan karakter dan mencetak kode ASCII jika saya salah jadi tolong perbaiki jawaban saya.
static void Main(string[] args)
{
Console.WriteLine(Console.Read());
Convert.ToInt16(Console.Read());
Console.ReadKey();
}
Mengapa tidak cara mudah kuno?
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);
// sekarang lebih baik;)