日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Perl字符串和排序用法詳解

本文和大家重點(diǎn)討論一下Perl字符轉(zhuǎn)和排序的概念,Perl字符串中選擇的相應(yīng)位置是可以改變的,而Perl排序子程序返回一個(gè)值,表明這兩個(gè)元素如何比較的。如果在最終結(jié)果中$a出現(xiàn)在$b之前,則其排序子程序返回-1。如果$b出現(xiàn)在$a之前,則返回1。如果$a和$b的順序無(wú)關(guān)緊要,則子程序返回0。

站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到宜豐網(wǎng)站設(shè)計(jì)與宜豐網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名申請(qǐng)、雅安服務(wù)器托管、企業(yè)郵箱。業(yè)務(wù)覆蓋宜豐地區(qū)。

Perl字符串和排序

1、使用索引尋找子串

Perl語(yǔ)言中查找的方法依賴于查找的地方。如果在一個(gè)大字符串中查找,那很幸運(yùn)的,index函數(shù)可以幫你的忙。字符位置是從0開(kāi)始編號(hào)的。

$where=index($big,$small);查找子串***次在大字符串中出現(xiàn)的地方,返回***個(gè)字符的位置,如果子串不存在,則返回-1??梢詫⑽恢脭?shù)(positionnumber)想象成找到此子串所經(jīng)過(guò)的字符。

my$where2=index($stuff,“w”,$where+1);#$where得到6,第三個(gè)參數(shù)給出了返回值的極小值。

你可能想知道某個(gè)子串***出現(xiàn)的位置??梢允褂胷index函數(shù)來(lái)做到,返回距離字符串頭的位置。

2、Perl語(yǔ)言中substr操作子串

substr只處理部分的字符串。$part=substr($string,$initial_position,$length);

一個(gè)字符串,一個(gè)從0開(kāi)始編號(hào)的初始位置,以及子串的長(zhǎng)度。返回值是一個(gè)子串。

如果請(qǐng)求的長(zhǎng)度超過(guò)了字符串的長(zhǎng)度,得到的是一個(gè)比你所希望的更短的結(jié)果。如果想明確要求到達(dá)字符串的結(jié)尾處,無(wú)論其或長(zhǎng)或短,可以省略掉第三個(gè)參數(shù)。

初始位置可以是負(fù)的,表示從字符串結(jié)尾處開(kāi)始(此時(shí),-1表示***一個(gè)字符)

字符串中選擇的相應(yīng)位置是可以改變的:

my$string=“Hello,world!”;
substr($string,0,5)=“Goodbye”;#$string現(xiàn)在變成了“Goodbye,world!”

substr($string,-20)=~s/fred/barney/g;
susbtr:使用4個(gè)參數(shù),第四個(gè)參數(shù)是替換的字符串:

my$previous_value=substr($string,0,5,“Goodbye”);

3、Perl語(yǔ)言中sprintf

sprintf函數(shù)的參數(shù)和printf的參數(shù)完全相同(除了可選的文件句柄外),但它返回的是被請(qǐng)求的字符串,而非打印出來(lái)。這對(duì)于希望將某個(gè)格式的字符串存入變量以供將來(lái)使用的情況非常方便。

my$data_tag=sprintf“%4d/%02d/%02d%02d:%02d:%02d”,$yr,$mo,$da,$h,$m,$s;

$date_tag得到像“2038/01/193:00:08”這樣的值。格式化數(shù)字中的前置0的含義是,如果需要,在前面加上0,使之達(dá)到需要的寬度。

4、subbig_money

{
my$number=sprintf“%.2f”,shift@_;
1while$number=~s/^(-?\d+)(\d\d\d)/$1,$2/;#在do-nothing循環(huán)中,每一次加入一個(gè)逗號(hào)
$number=~s/^(-?)/$1\$/;#將美元符號(hào)放入合適的位置
$number;
}

5、Perl語(yǔ)言中高級(jí)排序

排序子程序返回一個(gè)值,表明這兩個(gè)元素如何比較的。如果在最終結(jié)果中$a出現(xiàn)在$b之前,則其排序子程序返回-1。如果$b出現(xiàn)在$a之前,則返回1。如果$a和$b的順序無(wú)關(guān)緊要,則子程序返回0。

subby_number{
if($a<$b){-1}elsif($a>$b){1}else{0}
}

要使用一個(gè)排序子程序,將它(不使用&)放在關(guān)鍵字sort和你要排序的列表之間。

my@result=sortby_number@some_numbers;許多的排序子程序的名字都由by_開(kāi)頭,來(lái)描述如何排序

我們不需要在排序子程序中申明$a和$b,以及給它們?cè)O(shè)置。如果做了,子程序?qū)⒉荒艿玫秸_結(jié)果。我們讓Perl為我們給$a和$b賦值,我們只需要寫如何比較。

三向的比較數(shù)字操作符:太空船(spaceship)符號(hào)(<=>)。這個(gè)操作符比較兩個(gè)數(shù)字,按照數(shù)字將其排序,并返回-1,0,1。subby_number{$a<=>$b}

字符串的三向操作符:cmp

subcase_insenstive{“\L$a”cmp“\L$b”}大小寫無(wú)關(guān)的排序

當(dāng)你的排序子程序像我們這里的那樣簡(jiǎn)單時(shí),你可以通過(guò)使用“inline”子程序來(lái)代替排序的名字,使之更簡(jiǎn)單,如:my@numbers=sort{$a<=>$b}@some_numbers;在當(dāng)代的Perl程序中,幾乎見(jiàn)不到獨(dú)立的排序子程序。

my@descending=reversesort{$a<=>$b}@some_numbers;按照數(shù)字的降序方式排序

my@descending=sort{$b<=>$a}@some_nubmers;按照數(shù)字的降序方式排序

6、hashes中使用sort時(shí),只是對(duì)hash的keys排序(按照字母表順序排序)。現(xiàn)在我們將對(duì)hash的keys排序,其順序由其對(duì)應(yīng)的hash中的值決定。

subby_socre{$score{$b}<=>$score{$a}}

my%score=(“barney”=>,“fred”=>205,“dino”=>30);
my@winners=sortby_scorekeys%score;

subby_score_and_name{
$score{$b}<=>$score{$a}#按照降序的成績(jī)
or
$acmp$b;#字母順序的名字
}Perl語(yǔ)言中排序子程序可以有多級(jí)。


網(wǎng)站題目:Perl字符串和排序用法詳解
URL分享:http://www.dlmjj.cn/article/dpisdce.html