成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Perl字符串和排序用法詳解

開發(fā) 架構(gòu)
本文向大家介紹一下Perl字符串和排序的概念,Perl語言中如果請求的長度超過了Perl字符串的長度,得到的是一個比你所希望的更短的結(jié)果。

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

Perl字符串和排序

1、使用索引尋找子串

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

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

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

你可能想知道某個子串***出現(xiàn)的位置。可以使用rindex函數(shù)來做到,返回距離字符串頭的位置。

2、Perl語言中substr操作子串

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

一個字符串,一個從0開始編號的初始位置,以及子串的長度。返回值是一個子串。

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

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

字符串中選擇的相應(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個參數(shù),第四個參數(shù)是替換的字符串:

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

3、Perl語言中sprintf

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

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)中,每一次加入一個逗號
$number=~s/^(-?)/$1\$/;#將美元符號放入合適的位置
$number;
}

5、Perl語言中高級排序

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

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

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

my@result=sortby_number@some_numbers;許多的排序子程序的名字都由by_開頭,來描述如何排序

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

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

字符串的三向操作符:cmp

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

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

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

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

6、hashes中使用sort時,只是對hash的keys排序(按照字母表順序排序)。現(xiàn)在我們將對hash的keys排序,其順序由其對應(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}#按照降序的成績
or
$acmp$b;#字母順序的名字
}Perl語言中排序子程序可以有多級。

【編輯推薦】

  1. 暢談Perl操作符用法
  2. Perl文件句柄概念詳解
  3. Perl二維數(shù)組用法全程剖析
  4. 暢談Perl操作符用法
  5. 學(xué)習(xí)筆記 Perl數(shù)字與字符串間的自動轉(zhuǎn)換

 

責(zé)任編輯:佚名 來源: csdn.net
相關(guān)推薦

2010-07-14 12:39:30

Prel字符串

2010-07-14 12:57:59

Perl字符串

2010-07-19 15:07:46

Perl字符串處理函數(shù)

2010-07-14 16:48:02

Perl字符串比較

2010-07-14 16:35:52

Perl字符串處理函數(shù)

2010-07-23 13:53:33

Perl grep函數(shù)

2010-07-16 09:50:23

Perl控制結(jié)構(gòu)

2010-07-16 16:40:48

Perl引用

2011-08-10 18:47:18

Cocoa字符串

2010-07-14 15:32:21

Perl轉(zhuǎn)義字符

2010-07-16 10:20:46

Perl關(guān)聯(lián)數(shù)組

2010-07-28 14:59:26

Flex字符串

2010-07-20 15:02:20

Perl數(shù)組

2010-07-14 16:10:37

Perl

2010-07-14 17:00:34

Perl字符串

2010-02-02 11:27:16

C++字符串

2010-07-14 15:51:30

Perl 字符匹配

2010-11-26 09:46:26

MySQL字符串相加

2010-07-20 13:02:08

Perl數(shù)組

2021-03-08 08:23:24

Java字符串截取
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 久久久精品影院 | 日韩一区二区三区视频 | 人人草天天草 | 精品av| 成人欧美一区二区三区黑人孕妇 | 久久国产精品视频免费看 | 日韩高清一区二区 | 国产综合视频 | 免费在线观看黄视频 | 欧美精品久久久久 | 国产精品久久二区 | 久久精品91久久久久久再现 | 国产一区久久久 | 亚洲欧美日韩国产综合 | 最新午夜综合福利视频 | 国产午夜精品视频 | 午夜性色a√在线视频观看9 | 国产成人综合网 | 国产精品theporn | 亚洲日韩中文字幕一区 | 综合久 | 国产综合久久久久久鬼色 | 曰韩一二三区 | hsck成人网| 成人欧美在线 | 久久久久久久久一区 | 日本午夜在线视频 | 成av在线| 国产精品一区二区在线观看 | 中文字幕在线精品 | 免费观看一级特黄欧美大片 | 超碰成人免费 | 国内精品久久久久久影视8 最新黄色在线观看 | 精品国产一区二区三区在线观看 | av国产精品 | 欧美一区二区三区免费在线观看 | 欧美日韩在线高清 | 免费在线观看一区二区三区 | 中文字幕视频在线观看 | 91视频久久 | 久久不卡 |