In diesem Artikel lernen wir, ein Array von Bytes in einen String umzuwandeln. Es gibt viele Möglichkeiten, mit deren Hilfe wir dies erreichen können. Eine gängige Methode unter diesen Methoden ist die Verwendung der BitConverter-Klasse, die im System-Namespace vorhanden ist. In diesem Thema lernen wir etwas über Byte to String C#.
Die Methode BitConverter.ToString() mit all ihren überladenen Formen erleichtert die Konvertierung von Byte[] in den String. Diese Methode konvertiert grundsätzlich einen numerischen Wert, der nichts anderes als ein Element von byte[] ist, in die entsprechende hexadezimale Form einer Zeichenfolge. Die überladenen Formulare lauten wie folgt:
Es folgt die Syntax zum Konvertieren von Byte[] in einen String mit der Methode BitConverter.ToString():
public static string ToString(byte[] byteArray);
Die obige Methode verwendet ein Byte-Array als Eingabe und gibt eine Zeichenfolge zurück, die einige Hexadezimalpaare enthält. Jedes dieser Paare wird durch einen Bindestrich getrennt und stellt das entsprechende Element im byteArray dar.
public static string ToString(byte[] byteArray, int startingIndex);
Hier benötigt die ToString()-Methode zwei Argumente; byteArray ist das Array von Bytes, die in einen String konvertiert werden sollen. StartingIndex ist der Index eines Elements aus dem Byte-Array, von dem aus Sie mit der Konvertierung beginnen möchten.
public static string ToString(byte[] byteArray, int startingIndex, int length);
Hier benötigt die ToString()-Methode drei Argumente; byteArray ist das Array von Bytes, die in einen String konvertiert werden sollen. StartingIndex ist der Index des Elements aus dem Byte-Array, von dem aus Sie die Konvertierung durchführen möchten. Die Länge ist die Anzahl der Byte-Array-Elemente, die Sie ausgehend vom StartingIndex konvertieren möchten.
Wie bereits erwähnt, gibt es in C# viele Möglichkeiten, ein Byte-Array in einen String zu konvertieren. Eine der häufigsten Methoden ist die Verwendung der Methode BitConverter.ToString(). Die BitConverter-Klasse im System-Namespace in C# enthält mehrere Methoden zum Konvertieren eines Byte-Arrays in Basisdatentypen. Daher können wir die ToString()-Methode dieser Klasse verwenden, um Byte[] in den String zu konvertieren. Es gibt drei überladene Formen dieser Methode:
ToString(byte[]);
Diese Methode wird verwendet, um den numerischen Wert jedes Elements des gesamten Byte-Arrays in eine Zeichenfolge umzuwandeln, wobei die resultierende Zeichenfolge hexadezimale Paare enthält, die jeweils durch einen Bindestrich getrennt sind, und jedes Paar das entsprechende Byte-Array-Element darstellt.
ToString(byte[], Int32);
Diese Methode konvertiert den numerischen Wert jedes Elements aus dem Unterarray von Bytes in das entsprechende hexadezimale Zeichenfolgenpaar. Das ganzzahlige Argument in dieser Methode gibt den Startindex für das Unterarray an.
ToString(byte[], Int32, Int32);
Diese Methode wandelt den numerischen Wert für einige oder alle Elemente aus dem Byte-Array in sein hexadezimales Zeichenfolgenpaar um. Die zu konvertierenden Elemente werden mithilfe des zweiten und dritten Arguments dieser Methode angegeben. Das zweite Argument gibt den Startindex an, von dem aus wir mit der Konvertierung beginnen müssen, und das dritte Argument gibt die Länge der zu übernehmenden Elemente an, d. h. die Anzahl der Elemente, die zur Konvertierung genommen werden sollen, beginnend mit dem zuvor angegebenen Startindex.
Abgesehen davon können wir die im System vorhandene Encoding-Klasse verwenden. Text-Namespace zum Konvertieren eines Byte-Arrays in einen String mit UTF-8- oder ASCII-Zeichensatz und Codierung. Die von dieser Klasse bereitgestellte GetString()-Methode wird verwendet, um die im Byte-Array vorhandenen Bytes in einen String zu dekodieren.
Zu den anderen von der Encoding-Klasse bereitgestellten Codierungsschemata gehören Unicode, UTF32, UTF7 usw.
Eine andere Möglichkeit, diese Konvertierung zu erreichen, besteht darin, die Methode Convert.ToBase64String() zu verwenden, um die im Byte-Array vorhandenen Bytes in einen String zu konvertieren.
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(); } }
Die „Bytes“ in den obigen Anweisungen sind ein Array von Bytes, die in einen String konvertiert werden sollen. Also haben wir zunächst das Byte-Array als Bytestrom im „memoryStream“-Objekt erhalten. Dann lesen wir diesen Stream mit der StreamReader-Klasse und geben den Stream als String mit der ReadToEnd()-Methode zurück, die den Stream liest und den String-Wert zurückgibt.
Verschiedene Beispiele sind unten aufgeführt:
Beispiel für die Konvertierung eines Byte-Arrays in einen String mithilfe der BitConverter-Klasse.
Code:
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(); } }
Ausgabe:
Beispiel für die Konvertierung eines Byte-Arrays in einen String mithilfe der Encoding-Klasse und der MemoryStream-Klasse.
Code:
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(); } } }
Ausgabe:
In C# können wir mithilfe von Klassen wie BitConverter, Encoding, MemoryStream usw. ein Byte-Array in einen String konvertieren. Der von der BitConverter-Klasse bereitgestellte resultierende String enthält Hexadezimalpaare. Mit der Encoding-Klasse können wir String in Byte[] und Byte[] in einen String konvertieren, indem wir dasselbe Codierungsschema verwenden.
Das obige ist der detaillierte Inhalt vonByte zu String C#. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!