Byte to String C#

王林
Lepaskan: 2024-09-03 15:21:41
asal
554 orang telah melayarinya

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:

  • ToString(Byte[]);
  • ToString(Byte[], Int32);
  • ToString(Byte[], Int32, Int32);

Sintaks dengan Penjelasan

Berikut ialah sintaks untuk menukar bait[] kepada rentetan menggunakan kaedah BitConverter.ToString():

public static string ToString(byte[] byteArray);
Salin selepas log masuk

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);
Salin selepas log masuk

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);
Salin selepas log masuk

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.

Bagaimana untuk Menukar Bait kepada Rentetan Dalam C#?

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[]);
Salin selepas log masuk

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);
Salin selepas log masuk

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);
Salin selepas log masuk

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.

  • UTF8.GetString(bait[]);
  • ASCII.GetString(bait[]);

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:
Salin selepas log masuk
using (MemoryStream memoryStream = new MemoryStream(bytes))
{
using (StreamReader streamReader = new StreamReader(memoryStream))
{
return streamReader.ReadToEnd();
}
}
Salin selepas log masuk

‘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 Byte to String C#

Contoh yang berbeza dinyatakan di bawah:

Contoh #1

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();
}
}
Salin selepas log masuk

Output:

Byte to String C#

Contoh #2

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();
}
}
}
Salin selepas log masuk

Output:

Byte to String C#

Kesimpulan

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!

Label berkaitan:
sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!