一番簡単で有用な 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);
}