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查看执行)

在您的代码中,您将字符串拆分为换行符。自然,这只会返回一个值,因为没有换行符。

于 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 回答