Webプログラミング研究所〜初心者・中級者Webプログラマ(CGI・Perl・PHP・Javaプログラム言語)のための支援サイト〜 「Webプログラミング研究所」TOPへ 「Webプログラミング研究所」TOPへ
 
「プログラミングサンプル集」TOPへ 「プログラミングサンプル集」TOPへ
 
目次をフレームで表示 目次をフレームで表示
 

文字列を指定した文字列で分割する

 
概要
文字列を指定した文字列で分割し、配列に格納します。
 
Perl 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
 
PHP 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
 
Java 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
 
NOTE
 
ご意見箱コーナー (管理者宛てメール)
このページは、あなたの参考になりましたか?

参考になった  どちらともいえない  あまり参考にならなかった

ご意見・ご感想・ご要望がありましたら、ご記入いただければ幸いです。
今後のコンテンツ作成、ページ改善等の参考にさせていただきます。

 


Webプログラマになりたい人のためのスクール・講座情報

クリエイターの皆さん!お仕事ありますよ!フェローズに!

パソコンスクールガイド
積極的な情報収集が目標実現の近道です。

就職・起業・SOHO・それとも副業? デジハリがノウハウを伝授!

就転職に強い、資格取得スキルアップ専門校ヒューマンアカデミー

CsideNet レンタルサーバー サブドメイン型 780円/月
CGI/SSI/PHP、データベース(MySQL)が利用できます。1週間の試用期間があるのがGood!!

転職・派遣・就職・アルバイトの求人情報検索支援サイト 〜 14ALL JOB SEARCH 〜
 
 
  「Webプログラミング研究所」TOPへ 「Webプログラミング研究所」TOPへ
 
「プログラミングサンプル集」TOPへ 「プログラミングサンプル集」TOPへ
 
目次をフレームフレームで表示 目次をフレームで表示

Copyright (C) 2004 - 2005 IWAMODE Project All Rights Reserved.