DOBON.NETお気楽掲示板

■1601 / 親記事)  Stringクラス、SplitメソッドのTrim
  
□投稿者/ たこ -(2021/08/24(Tue) 12:33:28)
  • アイコンVB.NETで…

    <やりたい事>
    Dim Str as String = " 1,Test1 ,2, Test2"
    …の様な空白入りのカンマ区切りの文字を…



    Dim StrCollection As String()
    StrCollection(0) = "1"
    StrCollection(1) = "Test1"
    StrCollection(2) = "2"
    StrCollection(3) = "Test2"
    それぞれ空白無しのカンマ区切り文字列にしたい場合…

    Dim StrCollection As String() = Str.Split(",").Trim
    …と書いたらエラーが出ます…汗

    Str.Split(",")でそれぞれ分割された文字列になっているのだから、
    それをTrimする…と言う感じで使えても良い気がしますが…苦笑


        Dim Str As String = " 1,Test1 ,2, Test2"
        Dim StrCollection As String() = Str.Split(",")
        For x As Integer = 0 To StrCollection.Count - 1
          StrCollection(x) = StrCollection(x).Trim
        Next
    …と言う様な書き方しか無いのでしょうか…
    何か実現出来る良い書き方があればご教授下さい。
    よろしくお願い致します。
引用返信 削除キー/
■1602 / ResNo.1)  Re[1]: Stringクラス、SplitメソッドのTrim
□投稿者/ 魔界の仮面弁士 -(2021/09/07(Tue) 08:58:05)
  • アイコン
    No1601に返信(たこさんの記事)
    > Dim Str as String = "   1,Test1   ,2,    Test2"
    > …の様な空白入りのカンマ区切りの文字を…
    Str という変数名だと、VB の「Str 関数」(≠CStr 関数)と競合してしまいます。
    予約語では無いので、変数名として禁止されているわけでは無いですけれども…。
    
    
    > Dim StrCollection As String() = Str.Split(",").Trim
    > …と書いたらエラーが出ます…汗
    うーん。Trim はさておき、そもそも
     Dim StrCollection As String() = Str.Split(",")
    だけでも、「Option Strict On」モードだとエラーになりますよね?
    
    Str.Split(","c) または Split(Str, ",") とすれば、
    Option Strict On モードでも通用しますよ。
    
    
    > Str.Split(",")でそれぞれ分割された文字列になっているのだから、
    > それをTrimする…と言う感じで使えても良い気がしますが…苦笑
    そういうときは、String() 型に対する拡張メソッドを用意すれば OK です。
    
    
    > …と言う様な書き方しか無いのでしょうか…
    たとえば
     = Split(Str, ",").Select(AddressOf Trim).ToArray()
    あるいは
     = Str.Split(","c).Select(Function(s) s.Trim()).ToArray()
    のようにしてみるのは如何でしょうか。

引用返信 削除キー/



スレッド内ページ移動 / << 0 >>

このスレッドに書きこむ

Pass/


- Child Tree -