Back to Top

プログラムの覚書

Category: 文字列

VB.NET 文字列とバイト配列の変換をする

文字列からバイト配列(Byte())もしくは、バイト配列から文字列への変換について記載します。

変換には、System.Text.Encoding.GetEncodingメソッドを使用します。

バイト型配列から文字列に変換する

Dim str As String

'【Shift JIS から変換する】
str = System.Text.Encoding.GetEncoding(932).GetString(bytesData)
'または
str = System.Text.Encoding.GetEncoding("sjis").GetString(bytesData)

'【JISコード から変換する】
str = System.Text.Encoding.GetEncoding(50220).GetString(bytesData)
'または
str = System.Text.Encoding.GetEncoding("iso-2022-jp").GetString(bytesData)

'【EUCコード から変換する】
str = System.Text.Encoding.GetEncoding(51932).GetString(bytesData)
'または
str = System.Text.Encoding.GetEncoding("euc-jp").GetString(bytesData)

'【UTF-8コード から変換する】
str = System.Text.Encoding.GetEncoding(65001).GetString(bytesData) 
'または
str = System.Text.Encoding.GetEncoding("utf-8").GetString(bytesData)
'または
str = System.Text.Encoding.UTF8.GetString(bytesData)

※Encodingには、同じ変換でも書き方が数通りあります。上記以外にも文字コードはあります。

 

文字列からバイト型配列に変換する

Dim str As String = "文字列です。"
Dim bytesData As Byte()

'【Shift JIS に変換する】
bytesData = System.Text.Encoding.GetEncoding("sjis").GetBytes(str)

'【JISコード に変換する】
bytesData = System.Text.Encoding.GetEncoding("iso-2022-jp").GetBytes(str)

'【EUCコード に変換する】
bytesData = System.Text.Encoding.GetEncoding("euc-jp").GetBytes(str)

'【UTF-8コード に変換する】
bytesData = System.Text.Encoding.UTF8.GetBytes(str)

 

VB.NET 指定回数繰り返した文字・文字列を取得する

指定回数 繰り返した文字または、文字列を取得する方法を記載します。

 

Stringコンストラクタを使用する方法

'"あ"を10回繰り返した文字列を取得する
Dim str As New String("あ"c, 10)

 

String.StrDup メソッドを使用する方法

'"あ"を10回繰り返した文字列を取得する
Dim str As String = StrDup(10, "あ"c)

 

String.ConcatとEnumerable.Repeatを使用する方法

String.Concatメソッドは、文字列を連結し、

Enumerable.Repeatメソッドは、生成された値を指定回数繰り返します。

'"あい"を10回繰り返した文字列を取得する
Dim str As String = String.Concat(Enumerable.Repeat("あい", 10).ToArray())

'.NET 4.0からは、ToArrayを省略できる
Dim str As String = String.Concat(Enumerable.Repeat("あい", 10))

 

StringBuilder.Insertメソッドを使用する方法

'"あい"を10回繰り返した文字列を取得する
Dim str As String = (New System.Text.StringBuilder().Insert(0, "あい", 10).ToString())

 

Stringで繰り返した文字を指定の文字列に置き換える方法

Stringのコンストラクタで、”*” 文字列を生成し、Replaceメソッドで指定文字列に置き換える

'"あい"を10回繰り返した文字列を取得する
Dim str As String = (New String("*"c, 10)).Replace("*", "あい")