Dalam artikel ini, kita akan belajar untuk menukar tatasusunan bait kepada rentetan. Terdapat banyak cara yang tersedia dengan bantuan yang boleh kita capai. Satu cara biasa antara cara ini ialah dengan menggunakan kelas BitConverter yang terdapat di dalam ruang nama Sistem. Dalam topik ini, kita akan belajar tentang Byte to String C#.
Kaedah BitConverter.ToString() dengan semua bentuk terlebih muatan memudahkan untuk menukar bait[] kepada rentetan. Kaedah ini pada asasnya menukar nilai berangka yang tidak lain hanyalah unsur bait[] kepada bentuk rentetan perenambelasan yang setara. Borang yang terlebih muatan adalah seperti berikut:
Berikut ialah sintaks untuk menukar bait[] kepada rentetan menggunakan kaedah BitConverter.ToString():
public static string ToString(byte[] byteArray);
Kaedah di atas mengambil tatasusunan bait sebagai input dan mengembalikan rentetan yang mengandungi beberapa pasangan heksadesimal. Setiap pasangan ini dipisahkan oleh tanda sempang dan mewakili elemen yang sepadan dalam byteArray.
public static string ToString(byte[] byteArray, int startingIndex);
Di sini, kaedah ToString() mengambil dua hujah; byteArray ialah tatasusunan bait untuk ditukar kepada rentetan, startingIndex ialah indeks elemen daripada tatasusunan bait dari tempat anda ingin memulakan penukaran.
public static string ToString(byte[] byteArray, int startingIndex, int length);
Di sini, kaedah ToString() mengambil tiga hujah; byteArray ialah tatasusunan bait untuk ditukar kepada rentetan, startingIndex ialah indeks elemen daripada tatasusunan bait dari tempat anda mahu melakukan penukaran, panjang ialah bilangan elemen tatasusunan bait yang anda mahu tukar bermula dari Indeks permulaan.
Seperti yang dibincangkan sebelum ini, terdapat banyak cara untuk menukar tatasusunan bait kepada rentetan dalam C#. Salah satu cara biasa ialah dengan menggunakan kaedah BitConverter.ToString(). Kelas BitConverter di bawah Ruang nama Sistem dalam C# mengandungi beberapa kaedah untuk menukar tatasusunan bait kepada jenis data asas, dan dengan itu kita boleh menggunakan kaedah ToString() kelas ini untuk menukar bait[] kepada rentetan. Terdapat tiga bentuk kelebihan beban kaedah ini iaitu seperti berikut:
ToString(byte[]);
Kaedah ini digunakan untuk menukar nilai berangka setiap elemen keseluruhan tatasusunan bait kepada rentetan di mana rentetan yang terhasil akan mengandungi pasangan perenambelasan, setiap satu dipisahkan oleh tanda sempang dan setiap pasangan mewakili elemen tatasusunan bait yang sepadan.
ToString(byte[], Int32);
Kaedah ini menukar nilai berangka setiap elemen daripada subtatasusunan bait kepada pasangan rentetan heksadesimal yang setara. Argumen integer dalam kaedah ini menentukan indeks permulaan untuk sub-tatasusunan.
ToString(byte[], Int32, Int32);
Kaedah ini menukar nilai berangka untuk beberapa atau semua elemen daripada tatasusunan bait kepada pasangan rentetan heksadesimalnya. Elemen yang hendak ditukar ditentukan dengan menggunakan hujah kedua dan ketiga kaedah ini; hujah kedua menentukan indeks permulaan dari mana kita perlu memulakan penukaran, dan hujah ketiga menentukan panjang elemen yang akan diambil, iaitu, bilangan elemen yang akan diambil untuk penukaran, bermula dari indeks permulaan yang dinyatakan sebelum ini.
Selain itu, kita boleh menggunakan kelas Pengekodan yang terdapat di dalam Sistem. Ruang nama teks untuk menukar tatasusunan bait kepada rentetan dengan set aksara dan pengekodan UTF-8 atau ASCII. Kaedah GetString() yang disediakan oleh kelas ini digunakan untuk menyahkod bait yang terdapat dalam tatasusunan bait kepada rentetan.
Skim pengekodan lain yang disediakan oleh kelas Pengekodan termasuk Unicode, UTF32, UTF7, dll.
Cara lain untuk mencapai penukaran ini ialah dengan menggunakan kaedah Convert.ToBase64String() digunakan untuk menukar bait yang terdapat di dalam tatasusunan bait kepada rentetan.
ToBase64String(byte[]); We can also use MemoryStream to convert byte array to string. But, first, we need to convert the byte array to the stream of bytes using MemoryStream class; then, we can read this entire stream using StreamReader class and then can return this stream as a string with the help of the ReadToEnd() method. Let us now understand this with the help of statements provided below:
using (MemoryStream memoryStream = new MemoryStream(bytes)) { using (StreamReader streamReader = new StreamReader(memoryStream)) { return streamReader.ReadToEnd(); } }
‘bait’ dalam pernyataan di atas ialah tatasusunan bait untuk ditukar kepada rentetan. Jadi, pertama, kami mendapat tatasusunan bait sebagai aliran bait dalam objek 'memoryStream'. Kemudian, kami membaca strim ini menggunakan kelas StreamReader dan mengembalikan strim sebagai rentetan menggunakan kaedah ReadToEnd(), yang membaca strim dan mengembalikan nilai rentetan.
Contoh yang berbeza dinyatakan di bawah:
Contoh menukar tatasusunan bait kepada rentetan menggunakan kelas BitConverter.
Kod:
using System; using System.Globalization; using System.Text; using System.IO; public class Program { public static void Main() { string resultedStr = string.Empty; //defining byte array byte[] bytes = new byte[5] { 12, 24, 36, 48, 60 }; //printing byte array before conversion Console.Write("Byte array before conversion: "); for (int i = 0; i < bytes.Length; i++) { Console.Write(" " + bytes[i]); } //converting byte array to string resultedStr = BitConverter.ToString(bytes); //printing string after conversion Console.WriteLine("\nResulted string after conversion: {0}", resultedStr); Console.ReadLine(); } }
Output:
Contoh menukar tatasusunan bait kepada rentetan menggunakan kelas Pengekodan dan kelas MemoryStream.
Kod:
using System; using System.Globalization; using System.Text; using System.IO; namespace ConsoleApp4 { public class Program { public static void Main() { string str = "The sun rises in the east"; //converting string to array of bytes byte[] bytes = Encoding.ASCII.GetBytes(str); //printing byte array before conversion Console.Write("Byte array before conversion: "); for (int i = 0; i < bytes.Length; i++) { Console.Write(" " + bytes[i]); } //converting byte array to string using Encoding class str = Encoding.ASCII.GetString(bytes); //printing resulted string after conversion Console.WriteLine("\n"); Console.Write("\nConversion using Encoding class: \n{0}", str); //converting byte array to string using MemoryStream class Console.WriteLine("\n"); Console.WriteLine("\nConversion using MemoryStream: "); using (MemoryStream memoryStream = new MemoryStream(bytes)) { using (StreamReader streamReader = new StreamReader(memoryStream)) { Console.Write(streamReader.ReadToEnd()); } } Console.ReadLine(); } } }
Output:
Dalam C#, kita boleh menukar tatasusunan bait kepada rentetan menggunakan kelas seperti BitConverter, Pengekodan, MemoryStream, dsb. Rentetan terhasil yang disediakan oleh kelas BitConverter termasuk pasangan heksadesimal. Menggunakan kelas Pengekodan, kita boleh menukar rentetan kepada bait[] dan bait[] kepada rentetan menggunakan skema pengekodan yang sama.
Atas ialah kandungan terperinci Byte to String C#. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!