業務アプリで使用できそうなものを五月雨に記録しておく。
まとまるまで待っていると忘れてしまうために・・・。ww
なお、このブログ内に記載しているソースの転載・転用については何も縛りはありません。
ご使用の状況の如何に問わず、作者たる当方は結果についてその責任を一切負いません。ご使用は自己責任の範囲でお願いいたします。
■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
【文字列の切り出し3種】
1 2 3 4 5 6 7 8 9 10 11 12 | Dim str As String = "123456789あいうえお" <pre><code> '★左側から3文字切り出す Dim case1 As String = Strings.Left(str,3) '「123」となる '★右側から2文字切り出す Dim case2 As String = Strings.Right(str,2) '「えお」となる '★右側から数えて5文字目から2文字切り出す Dim case3 As String = Strings.Mid(str,5,2) '「56」となる</code></pre> |
【バイト単位の文字列の切り出し】
最近はあまり使わないけど、業務プログラムを作成するときには、考える場面が多い。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | Dim str As String = "123456789あいうえお" <pre><code> '半角を1バイト、全角を2バイトと計算する考え方は「Shift_JIS」の文字コードを採用している場合ですので切り出したい文字列をあらかじめ「Shift_JIS」にエンコードします。 Dim Encode As System.Text.Encoding = System.Text.Encoding.GetEncoding( "Shift_JIS" ) 'Shift_JISにエンコードされた文字列をバイト変数に格納します。 Dim bByte As Byte () = Encode.GetBytes(str) '★左側から数えて4文字目から3バイト分切り出す Dim case1 As String = Encode.GetString(bByte, 3, 3) '「456」となる '★右側から数えて3バイト分切り出す Dim case2 As String = Encode.GetString(bByte , bByte.Length - 3, 3) '「ヲお」となる(文字コードが中途半端になって化けます。) '★左側から数えて10文字目から4バイト分切り出す Dim case3 As String = Encode.GetString(bByte, 9, 4) '「あい」となる</code></pre> |
※注意!
上記の「文字の切り出し3種」で表記した例と文字数分切り出した結果が異なります。バイトで切り出す[Encode.GetString]の場合は切り出し開始位置は+1して考えます。その為、文字列の始めから切り出す場合は第二引数を0にします。省略はできません。