プログラミングにおいて文字列型「String」はいろんな場面で使います。 名前を表示する時に使ったり、数値を文字列型で退避したりと枚挙に暇がありません。
この「String」ですがよく使う数値型のInteger型やDouble型、Decimal型などとは性格が異なり内部的には「クラス」の扱いなのです。 「クラス」は変数を宣言してもその変数を初期化(インスタンス化)しないと、その「クラス」のプロパティやメソッドが使えません。 使えないというか、インスタンス化されていない「クラス」のプロパティにアクセスするとその時点でエラーが発生します。 以下はエラーの発生するソースの例です。
変数 str を初期化せずにString型のLengthプロパティを使うとエラーが発生します。 「NullReferenceException」エラーが発生します。(NULLであるオブジェクトを参照したというエラー)
このエラーを回避するには、文字列型の宣言するところで初期化(空文字を代入する)を行ってから、プロパティやメソッドを使います。 また、文字列長のみ知りたいのであれば、標準で備わっている「Len」関数を使います。
Microsoft.VisualBasic.Stringsモジュールには昔のBasicを引きずった関数がいろいろありますが、 その関数を使うか、文字列のクラスのメソッドを使うかは好みの問題かと思います。 今後は「String」クラスの「Substring」メソッドを使うのが主流になるとは思います。
但し、「Left」「Right」「Mid」の関数は昔から便利だったので結構使いたくなります。 これらの関数の「String」クラスの「Substring」メソッドでの方法を以下に記します。
=====
2016/01/28:の時の情報
この「String」ですがよく使う数値型のInteger型やDouble型、Decimal型などとは性格が異なり内部的には「クラス」の扱いなのです。 「クラス」は変数を宣言してもその変数を初期化(インスタンス化)しないと、その「クラス」のプロパティやメソッドが使えません。 使えないというか、インスタンス化されていない「クラス」のプロパティにアクセスするとその時点でエラーが発生します。 以下はエラーの発生するソースの例です。
Dim str As String Dim nLen As Integer nLen = str.Length 'エラーが発生します
変数 str を初期化せずにString型のLengthプロパティを使うとエラーが発生します。 「NullReferenceException」エラーが発生します。(NULLであるオブジェクトを参照したというエラー)
このエラーを回避するには、文字列型の宣言するところで初期化(空文字を代入する)を行ってから、プロパティやメソッドを使います。 また、文字列長のみ知りたいのであれば、標準で備わっている「Len」関数を使います。
Dim str As String Dim nLen As Integer nLen = Len(str) 'Microsoft.VisualBasic.Stringsモジュール内関数 Dim str2 As String = "" '文字列の初期化 nLen = str2.Length 'エラーは発生しません
Microsoft.VisualBasic.Stringsモジュールには昔のBasicを引きずった関数がいろいろありますが、 その関数を使うか、文字列のクラスのメソッドを使うかは好みの問題かと思います。 今後は「String」クラスの「Substring」メソッドを使うのが主流になるとは思います。
但し、「Left」「Right」「Mid」の関数は昔から便利だったので結構使いたくなります。 これらの関数の「String」クラスの「Substring」メソッドでの方法を以下に記します。
Dim str As String = "0123456789" Dim str2 As String = "" 'Microsoft.VisualBasicモジュール関数 str2 = Microsoft.VisualBasic.Left(str, 2) '"01" str2 = Microsoft.VisualBasic.Right(str, 2) '"89" str2 = Microsoft.VisualBasic.Mid(str, 2, 3) '"123" 'Substringメソッド使用 str2 = str.Substring(0, 2) 'Left(str, 2) str2 = str.Substring(str.Length - 2, 2) 'Right(str, 2) str2 = str.Substring(1, 3) 'Mid(str, 2, 3)
=====
2016/01/28:の時の情報
PR
コメント