文字列の単語を改行文字で分割したい。
私が試してみました :
$string = 'One Two Three';
my @array3 = split("\n",$string);
次のような出力が必要です:
One
Two
Three
for ループを使用せずにこれを行うことはできますか?
関数を使用して、空間の領域をsplit
分割します (は特殊なケースです)。次に、生成されたリストと改行文字を取得します。$string
" "
join
"\n"
my $string = 'One Two Three';
my $output = join "\n", split " ", $string;
( http://ideone.com/Sd0Wpで実行を表示)
コードでは、文字列を改行で分割します。当然、改行文字がないため、これは 1 つの値のみを返します。
このタスクに分割結合を使用する必要はありません。
正規表現を使用して、すべてのスペースを改行に置き換えてください。
$string = 'One Two Three';
$string =~ s/\s/\n/g;
print $string;
これを試して:
$string = 'One Two Three';
my @array3 = split (' ', $string);
print join ("\n", @array3);
これにより、文字列がスペースで分割され、印刷時に改行で結合されます。
文字列に改行文字が含まれていません。おそらく、スペース文字で分割する必要があります。だから、このコードを試してください:
$string = 'One Two Three';
my @array3 = split(/\s+/,$string);