加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl中数组函数详解:join和split和splice

发布时间:2020-12-16 00:39:17 所属栏目:大数据 来源:网络整理
导读:在perl中, join ()和 split ()的功能是相反的。 一.join函数 ? 1.作用:把数组元素或者几个字符串通过分隔符连接成单个字符串 ? 2.格式:join(DELIMITER,ARRAY或string[1,2,3...]) ? 3.实例:#join $name="Tom"; $birth="01/02/86"; $addr="chengdu.sichua
在perl中, join()和 split()的功能是相反的。
一.join函数
? 1.作用:把数组元素或者几个字符串通过分隔符连接成单个字符串
? 2.格式:join(DELIMITER,ARRAY或string[1,2,3...])
? 3.实例:#join
$name="Tom";
$birth="01/02/86";
$addr="chengdu.sichuan";
$info=join(":",$name,$birth,$addr);
print "1.$info"."n";

@list=("Tom","Joe","Tonny","chris");
@array=join("n",@list);
$str=join("-",@list);
print "2.$strn";
print "3.@array";

4.结果:
1.Tom:01/02/86:chengdu.sichuan
2.Tom-Joe-Tonny-chris
3.Tom
Joe
Tonny
chris

二、split函数
? 1.作用:与上面的join函数功能恰好相反,是通过指定的分隔符把字符串分割成一个一个的字段,形成一个数组返回
? 2.格式:split(DELIMITER,STRING);
? ? ? ? ? ? ? split(DELIMITER,STRING,LIMIT); ? ? ?
? ? ? ? ? ? ? split(DELIMITER);
? 3.1.实例:#split(DELIMITER,STRING);
? ? $char="a/b/c/d/e/f";
? ? @letters=split("/",$char);
? ? print "1.@lettersn";

? 3.2.输出结果:
? 1.a b c d e f

? 4.1实例:#split(DELIMITER);
? ? while(<DATA>){
? ? ? ? @ch=split(":");
? ? ? ? ? print "$ch[1]n";
? ? }

__DATA__
a:2:3:5
2:s:f:s
e:r:t:y

? 4.2输出结果:
? 2
? s
? r


? 5.1实例:#split(DELIMITER,LIMIT); ? ? ?
? ? $string="Tom Joe Tonny chris";
? ? @names=split(" ",$string,2);
? ? print "1.$names[0]n";
? ? print "2.$names[1]n";
? ? print "3.$names[2]n";

? 5.2输出结果:
? 1.Tom
? 2.Joe Tonny chris
? 3.

? 6总结:
(1)在第三种格式中,LIMIT是用来指定需要拆分的字段数目。若LIMIT的值小雨STRING中的字段数,则拆分后最后一个数组元素将包含所以剩余的。
(2)在第二种格式中,使用的变量其实是默认的$_

splice

splice函数有三个作用。第一个作用是向数组中间的一部分插入内容。例如:

   @d=(1..9);
   my @e=("a".."f");
   splice(@d,@e); #目标数组, 插入起始位置, 覆盖长度, 插入数组

将会得到12abcdef56789,注意这里是从第二个开始插入,不是从下标为2的元素开始插入的。

splice的第二个功能是删除,例如在刚才的代码上面再加上:

   splice(@d,6); #目标数组, 起始位置,删除长度

将可以得到1256789

splice的第三个功能就是删除到末尾。语法为:

   splice(@d,2);

就是从第二个开始,删除到末尾。

?

我们还应该有一个可以把整个数组合并成一个标量的函数。这个函数就是join,join有两个参数,第一个参数是合并时放在元素之间的分割符,第二个是进行操作的数组。 例如:

   my @g=(1,3);
   join(" ",@g);

将可以得到“1 2 3”.

undef(@a); # 作用是把@a的内容清空。

chop(@a); #作用是把数组内每个元素的末尾去一个字符。

chomp(@a); #作用则是把数组内的每一个元素的末尾的换行符去掉。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读