3

文字列の単語を改行文字で分割したい。

私が試してみました :

 $string = 'One Two Three';
 my @array3 = split("\n",$string);

次のような出力が必要です:

One
Two 
Three

for ループを使用せずにこれを行うことはできますか?

4

4 に答える 4

13

関数を使用して、空間の領域をsplit分割します (は特殊なケースです)。次に、生成されたリストと改行文字を取得します。$string" "join"\n"

my $string = 'One Two Three';
my $output = join "\n", split " ", $string;

( http://ideone.com/Sd0Wpで実行を表示)

コードでは、文字列を改行で分割します。当然、改行文字がないため、これは 1 つの値のみを返します。

于 2012-08-17T04:11:07.393 に答える
5

このタスクに分割結合を使用する必要はありません。
正規表現を使用して、すべてのスペースを改行に置き換えてください。

$string = 'One Two Three';
$string =~ s/\s/\n/g;
print $string;
于 2012-08-17T04:26:05.617 に答える
1

これを試して:

$string = 'One Two Three';
my @array3 = split (' ', $string);

print join ("\n", @array3);

これにより、文字列がスペースで分割され、印刷時に改行で結合されます。

于 2012-08-17T04:11:12.090 に答える
1

文字列に改行文字が含まれていません。おそらく、スペース文字で分割する必要があります。だから、このコードを試してください:

$string = 'One Two Three';
my @array3 = split(/\s+/,$string);
于 2012-08-17T04:13:48.437 に答える