濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > perl中的字符串操作函數(shù)chomp與chop介紹

perl中的字符串操作函數(shù)chomp與chop介紹

熱門(mén)標(biāo)簽:河南虛擬外呼系統(tǒng)公司 惠州龍門(mén)400電話要怎么申請(qǐng) 電話機(jī)器人哪里有賣(mài) 熱門(mén)電銷(xiāo)機(jī)器人 okcc外呼系統(tǒng)怎么調(diào)速度 萬(wàn)利達(dá)百貨商場(chǎng)地圖標(biāo)注 智能機(jī)器人電銷(xiāo)神器 外呼電信系統(tǒng) 上海企業(yè)外呼系統(tǒng)

chomp與chop都是用于去除字符串變量尾部的字符,但它們有各自的區(qū)別。

chomp函數(shù)對(duì)變量起作用,而此變量含有字符串。如果字符串結(jié)尾有換行符,chomp可以去掉它。這基本上就是它能完成的所有功能,如下例:

復(fù)制代碼 代碼如下:

$text="alineoftext\n      "; #也可以由STDIN>輸入
chomp($text);    #去掉換行符(\n)。

它非常有用,基本上你的每一個(gè)程序都會(huì)用到它。如你將知道,這是將字符串末尾換行符去掉的最好方法?;?Perl 中的一條基本原則:在需要使用變量的地方,可以使用賦值表達(dá)式來(lái)代替。我們有更簡(jiǎn)單的使用 chomp 的方法。Perl 首先做賦值運(yùn)算,再使用這個(gè)變量。因此使用 chomp 的最常用方法是:
復(fù)制代碼 代碼如下:

chomp($text=STDIN>);    #讀入,但不含換行符
$text=STDIN>;
chomp($text);

#同上,但用兩步完成


第一眼見(jiàn)到時(shí),第一種組合的方法看起來(lái)復(fù)雜些。如果把上述其看成兩步操作,讀一行再  chomp,那寫(xiě)成兩個(gè)語(yǔ)句的方法看起來(lái)自然些。如果將其看作一個(gè)操作,讀入一行但不包括換行符,那寫(xiě)成一個(gè)語(yǔ)句的方法更恰當(dāng)。由于絕大多數(shù) Perl 程序員使用第一種寫(xiě)法,你也應(yīng)該使用它。

chomp 是一個(gè)函數(shù)。作為一個(gè)函數(shù),它有一個(gè)返回值,為移除的字符的個(gè)數(shù)。這個(gè)數(shù)字基本上沒(méi)什么用:

復(fù)制代碼 代碼如下:

$food=STDIN>;
$betty=chomp($food); #得到值 1

如上,在使用 chomp 時(shí),可以使用或不使用括號(hào)()。這又是 Perl 中的一條通用規(guī)則:除非移除它們時(shí)含義會(huì)變,否則括號(hào)是可以省略的。如果結(jié)尾有兩個(gè)或兩個(gè)以上的換行符,chomp 僅去掉一個(gè)。如果沒(méi)有,那什么也不做,返回 0。這種情況在一次讀入一行時(shí)不會(huì)發(fā)生,但使用了輸入分隔符(input  separator)($/)(其不為換行符(\n)),read 函數(shù),或者將一些字符串結(jié)合起來(lái)就有可能發(fā)生。

在編寫(xiě)Perl程序代碼的時(shí)候,也許你會(huì)有時(shí)會(huì)用chop() 函數(shù)來(lái)去掉>輸入的換行符"\n",有時(shí)候使用chomp() 函數(shù)。其實(shí)上面的用法都可以達(dá)到預(yù)期的效果,但它們也有細(xì)微的差別。
 
chop()函數(shù),只是去除最后一個(gè)字符。
chomp()函數(shù),就要首先判斷最后一個(gè)字符是不是為"\n",它才去除。

chop函數(shù)會(huì)砍掉字符串變量的最后一個(gè)字符,并返回砍掉的字符,chop函數(shù)不管字符串里是什么都會(huì)剪短它,而chomp函數(shù)則更有選擇性一些。不能chop直接量,只能chop變量。
用法:

復(fù)制代碼 代碼如下:

chop VARIABLE
chop LIST
chop

例子:
如果chop一列LIST變量,那么列表中的每個(gè)字符串都會(huì)被剪短:
復(fù)制代碼 代碼如下:

@lines=`cat myfile`;
chop @lines;

在最常見(jiàn)的情況下,chop可以用substr來(lái)表示:
復(fù)制代碼 代碼如下:

$last_char = chop($var);
$last_char = substr($var, -1, 1, ""); # 同上

再來(lái)看下面的完整的例子:
復(fù)制代碼 代碼如下:

#!/usr/bin/perl
$string1 = "This is test";
$retval  = chop( $string1 );
print " Choped String is : $string1\n";
print " Character removed : $retval\n";

結(jié)果:
復(fù)制代碼 代碼如下:

Choped String is : This is tes
Number of characters removed : t

標(biāo)簽:綏化 周口 秦皇島 周口 合肥 百色 淮安 綿陽(yáng)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《perl中的字符串操作函數(shù)chomp與chop介紹》,本文關(guān)鍵詞  perl,中的,字符串,操作,函數(shù),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《perl中的字符串操作函數(shù)chomp與chop介紹》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于perl中的字符串操作函數(shù)chomp與chop介紹的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    白山市| 镶黄旗| 临城县| 新郑市| 枣阳市| 喜德县| 曲阜市| 吴川市| 赞皇县| 南涧| 商水县| 苏尼特右旗| 曲麻莱县| 吉首市| 岳普湖县| 泰州市| 德兴市| 兴义市| 南丹县| 碌曲县| 贺兰县| 嘉义县| 临洮县| 读书| 京山县| 临朐县| 秦安县| 施甸县| 张家港市| 衡水市| 白朗县| 中江县| 鄄城县| 定州市| 普安县| 古田县| 久治县| 克东县| 临武县| 托里县| 买车|