文字列でのSplit
この前、仕事で
>|vb|
Dim hoge As String = "ab" & vbCrLf & "cd"
Dim hogehoge As String() = hoge.Split(vbCrLf)
||<
みたいなコードを書いていたのですが、hogehoge(1)が"cd"にならない。
色々試して悩んだあげく、分かったことはString.Splitの引数はStringではなくCharであるということ。
そしてvbCrLfはStringであること。vbCrLfは要するにCR+LFなので2文字なんですね。
#vbCrLf.Lengthってやるとちゃんと"2"になります。
Option Strict Onにすると、vbCrLfはCharじゃないよって怒られます。
無理矢理、hoge.Split(CChar(vbCrLf))とかやると、CCharがvbCrLfの1文字目(つまりCr)を返してきて
CrでSplitされて、hogehoge(1)は"(Lf)cd"となります。
ちなみにこのことを社内SNSに書いたら、頭のいい人が教えてくれました。
文字列でのSplitはStrings.Splitでできるよと。
>|vb|
Strings.Split(hoge,vbCrLf)
||<
みたいな感じで使います。