none
用 字串.Split 以 VbCrLf 為關鍵字 取回的陣列有問題,這是不是Bug? RRS feed

  • 問題

  • 版本:vb.net 2005

    小弟在做字串分割成陣列時,發現了一個問題,不知這算不算是Bug...如下

     

    建一個純文字檔,其內容如下:

    ABC

    DEF

    GHI

    JKL

     


     

    有問題的程式碼:

            Dim TmpFs As System.IO.StreamReader = New System.IO.StreamReader(GetAppPath() & "test.txt", System.Text.Encoding.Unicode)
            Dim TmpStr As String = TmpFs.ReadToEnd.Trim.ToUpper
            Dim Test() As String = TmpStr.Split(vbCrLf)

          Dim Tmp as Integer = Array.IndexOf(Test, "DEF")


    執行後,Tmp 的值竟然是 -1。查了陣列中的字元發現,除了第一個元素內<<也就是Test(0)>>的值是正確的外,其它的值都多了一個 chr(10) 的字元?原本以為會不會是UniCode碼的關係,改成ANSI碼再試,結果仍舊一樣。不知道為什麼會為様呢?

     


     

    最後解決的方式改用

    Test = Strings.Split(TmpStr, vbCrLf)

    分割字串,總算是OK了,,,,


     

    2007年4月30日 上午 10:01

解答

所有回覆