Visual Basic における文字列アクセスのインデックス番号
更新 : 2007 年 11 月
ここでは、Visual Basic と .NET Framework における、文字列内の文字へのアクセス方法の違いについて説明します。.NET Framework では常に、文字列内の文字へのアクセスに 0 から始まるインデックス番号を使うのに対し、Visual Basic の場合は、関数によってインデックス番号が 0 から始まる場合と 1 から始まる場合があります。
1 から始まるインデックス番号
インデックス番号が 1 から始まる Visual Basic の関数の例に、Mid 関数があります。この関数の引数では、文字列内の部分文字列の開始位置を 1 から始まるインデックス番号で示します。一方、.NET Framework の String.Substring メソッドの引数では、同じ開始位置を 0 から始まるインデックス番号で示します。したがって、文字列 "ABCDE" の各文字の番号は、Mid 関数では 1、2、3、4、5 になるのに対し、String.Substring メソッドでは 0、1、2、3、4 になります。
0 から始まるインデックス番号
インデックス番号が 0 から始まる Visual Basic の関数の例に、Split 関数があります。この関数は文字列を分割し、部分文字列を格納した配列を返します。.NET Framework の String.Split メソッドも文字列を分割し、部分文字列を格納した配列を返します。Split 関数と Split メソッドは .NET Framework の配列を返すため、インデックス番号はどちらも 0 から始まる必要があります。