|
文字列を指定した文字列で分割し、配列に格納します。 |
|
|
split()関数を使用します。
$str =
"A,B,C,D,E,F";
@arr = split(",", $str); for($i=0; $i<@arr; $i++) { print $i . "番目 : " . $arr[$i] . "\n"; }
0番目 :
A
1番目 : B 2番目 : C 3番目 : D 4番目 : E 5番目 : F split()関数の第1引数を正規表現で表記することにより、正規表現による分割を行うことができます。
$str =
"A,,B,C,,,D,E,F";
@arr = split(/,+/, $str); for($i=0; $i<@arr; $i++) { print $i . "番目 : " . $arr[$i] . "\n"; } この例では、 1つ以上のカンマの並びをまとまった区切り文字列と考えて文字列の分割を行います。 実行結果は次のようになります。
0番目 : A
1番目 : B 2番目 : C 3番目 : D 4番目 : E 5番目 : F |
|
|
explode()関数を使用します。
<?php
$str = "A,B,C,D,E,F"; $arr = explode(",", $str); for($i=0; $i<sizeof($arr); $i++) { echo $i . "番目 : " . $arr[$i] . "\n"; } ?>
0番目 : A
1番目 : B 2番目 : C 3番目 : D 4番目 : E 5番目 : F 正規表現で分割したい場合は、preg_split()関数を使用します。 ただ、正規表現を行う必要性がない場合は、explode()関数を使用したほうが、処理が高速です。
<?php
$str = "A,,B,C,,,D,E,F"; $arr = preg_split("/,/", $str); for($i=0; $i<sizeof($arr); $i++) { print $i . "番目 : " . $arr[$i] . "\n"; } ?> この例では、 1つ以上のカンマの並びをまとまった区切り文字列と考えて文字列の分割を行います。 実行結果は次のようになります。
0番目 : A
1番目 : B 2番目 : C 3番目 : D 4番目 : E 5番目 : F |
|
|
Perlのsplit()関数やPHPのexplode()関数のようなものが無いので、java.util.StringTokenizerクラスを使用した関数を作ります。
import java.util.StringTokenizer;
import java.util.Vector; public class StringSplit { public static void main(String[] args) { String str = "A,B,C,D,E,F"; Vector list = split(str, ","); for(int i=0; i<list.size(); i++) { String str2 = (String)list.get(i); System.out.println(i + "番目 : " + str2); } } public static Vector split(String str, String delim) { StringTokenizer st = new StringTokenizer(str, delim); Vector list = new Vector(); while(st.hasMoreTokens()) { list.add(st.nextToken()); } return list; } }
0番目 : A
1番目 : B 2番目 : C 3番目 : D 4番目 : E 5番目 : F |
|
|
| ご意見箱コーナー (管理者宛てメール) |
|
このページは、あなたの参考になりましたか? |