文字列の分割、結合

文字列の分割

文字列を分割して部分文字列のリストにできます。分割する時には、split命令を用います。split命令は以下の形をしています。

split (/区切り文字のパターン/, 区切る対象, 区切る上限個数);

区切り文字のパターンは、区切りに使用する文字を指定します。文字を括弧「()」でくくると区切りに使用した文字も分割された結果の一部になります。省略された場合には、空白文字で分割されます。

区切る対象は、区切りたい文字列を指定します。省略された場合には、変数$_を区切ります。

区切る上限個数は、区切った結果の上限の個数を指定します。上限の個数に達した場合、それ以上分割しません。省略された場合には上限なしになります。

split命令は、スカラーまたはリストの値を返します。スカラーとしては「区切った個数」、リストとしては「区切った結果生じる部分文字列からなる配列」を返します。省略された場合には、配列@_に部分文字列を返します。

(例) 文字列を単語に区切って配列にいれるプログラム

プログラム

#!/usr/local/bin/perl

@word= split (/, /, "Hello, World!"); # コンマと空白文字で分割。分割した結果を配列@wordに代入。

foreach $n (@word) {# 配列@wordの各要素ごとにループ
    print "$n\n"; 要素を出力して改行
}

実行結果

Hello

World!

文字列の結合

リストの文字列を結合して一つの文字列を作ることができます。結合を行うときには、join命令を用います。join命令は以下の形をしています。

join(間にはさむ文字列、結合する文字列のリスト);

間にはさむ文字列は、結合する文字列の間にはさむ文字列を指定します。省略した場合には間に文字をはさまずに結合します。

結合する文字列のリストは、結合したい文字列をリストで与えます。

(例) 文字列を結合するプログラム

プログラム

#!/usr/local/bin/perl

print join (", " , ("Hello", "World!")); # HelloとWorld!を「, 」で結合して表示

実行結果

Hello, World!