String
, Byte ArrayIn VB.NET, a String
can be stored as a series of Bytes. This is an efficient encoding for ASCII-only Strings.
This conversion can make file formats more efficient, and it can help compatibility. In VB.NET we can convert Strings to Byte arrays.
The ASCII.GetBytes()
Function receives an argument of String
type. And it returns a Byte array reference. We do not need to allocate the Byte array—this is automatically done.
BinaryWriter
.Module Module1 Sub Main() ' The input String. Dim value As String = "abc!" ' Convert String to Byte array. Dim array() As Byte = System.Text.Encoding.ASCII.GetBytes(value) ' Display Bytes. For Each b As Byte In array Console.WriteLine("{0} = {1}", b, ChrW(b)) Next End Sub End Module97 = a 98 = b 99 = c 33 = !
We can convert Bytes into Strings—for this we use the ASCII.GetString()
Function. This Function receives a Byte array and it returns the converted String
.
ASCII.GetString
round-trips the bytes from ASCII.GetBytes
.Module Module1 Sub Main() ' Input Bytes. Dim array() As Byte = {86, 66, 46, 78, 69, 84} ' Use GetString. Dim value As String = System.Text.ASCIIEncoding.ASCII.GetString(array) Console.WriteLine(value) End Sub End ModuleVB.NET
char
functionsOther Functions, such as ASCII.GetChars
, are also available. We can get char
arrays, or counts of chars, from these functions. These are less often needed in my experience.
Char
array containing the characters represented by the individual Bytes.Char
array.Having an efficient way to store character data is important. Sometimes this is useful for compatibility—a function may require bytes, but we have a string
.