一番簡単で有用な VBScript VB系では、配列が () なのに注意です
str = "A,B,C" aData = Split(str, ",") result = "" For I = 0 To Ubound(aData) If result <> "" Then result = result & "," End If result = result & aData(I) Next MsgBox( result ) Wscript.Echo result
しかし、VBScript は古めの言語なので、演算子として &= という ものは使えません( VB.NET は OK ) ですから、以下のPHPはそのへんを忠実に書き換えていますが、 .= という書き方が可能です。 殆ど VBScript と同じですが、配列の数を取得するのに、PHPでは 直感的な count 関数を使用しているのに対して、VBScript では 配列の添え字の上限 を求める UBound 関数を使用します。
<? $str = "A,B,C"; $aData = explode(",",$str); $result = ""; for( $i = 0; $i < count($aData); $i++ ) { If ( $result != "" ) { $result = $result . ","; } $result = $result . $aData[$i]; } print $result; ?>
さらに、VB.NET への移行は、VBScript より厳密になるので、 データの定義や型の明示が必要になります。 ここで注目なのは、Split メソッドの引数に文字列が使えてしまう事。 本来は、Char の配列でないといけないのですが、何故か動きます。 ","c と同等なのかどうかは解りませんが、VBでの選択肢は結構多いのです
Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click Dim str As String = "A,B,C" Dim aData As String() aData = str.Split(",") Dim I As Integer Dim result As String = "" For I = 0 To aData.Length - 1 If result <> "" Then result &= "," End If result &= aData(I) Next MessageBox.Show(result) End Sub End Class
C# では、Split メソッドの本来の使い方を実装しています。 というか、これでないとコンパイルは通りませんし。
private void button1_Click(object sender, EventArgs e) { string str = "A,B,C"; string[] aData = null; String delimStr = ","; Char[] delimiter = delimStr.ToCharArray(); aData = str.Split(delimiter); int I = 0; string result = ""; for (I = 0; I <= aData.Length - 1; I++) { if (!string.IsNullOrEmpty(result)) { result += ","; } result += aData[I]; } MessageBox.Show(result); }