字串的內建函式有:
chomp, chop, chr, crypt, fc, hex, index, lc, lcfirst, length, oct,
分為幾類:
字元處理類函式:
字元位置索引:
進製轉換類:
其他類:
和chomp有點類似。
1.修改字串
$str="abnc";2.修改hashprint chop $str; # 輸出c
print $str; # 輸出abn
%myhash=(name => "malongshuai",
prov => "jiangxi",
sch => "linchuan"
);$choped = chop %myhash;
while(($key,$value) = each %myhash)
print "=" x 9,"\n";
print "$choped";
執行返回:
prov:jiangx
sch:linchua
name:malongshua
*****====
i
3.修改列表
@list=qw(aaa bbb ccc ddd);
chop @list; # 返回aa bb cc dd
print "@list";
reverse用於反轉列表、標量字串、hash。
反轉列表:將元素反轉
@arr=qw(abc def ghi);
@arr=reverse @arr;
print "@arr"; # 輸出(ghi def abc)
print join(",",reverse "hello","world") ; # 輸出:world,hello
標量上下文下:串聯各元素得到乙個標量,然後反轉這個標量,即使反轉目標是列表
@arr=qw(aa bb cc dd );
print scalar reverse @arr; # 輸出:ddccbbaa
print "\n";
print @arr; # 輸出:aabbccdd
反轉字串:
print scalar reverse "hello"; # 輸出olleh
反轉hash:會把value反轉成key,所以value重複時,將丟棄一部分鍵值
%arr=qw(aa bb cc dd );
%arr1=reverse %arr;
while(($key,$value)=each %arr1)
執行結果:
dd -> cc
bb -> aa
用於從給定字串中提取出一段子字串。
用法:
substr string,offset,length,replacement
substr string,offset,length
substr string,offset
其中:
use 5.010;
$str="love your everything";
say substr $str,5; # 輸出:your everything
say substr $str,-10; # 從後往前取:everything
say substr $str,5,4; # 從前往後取4個字元:your
say substr $str,5,-3; # 從位移5取到位移-3(從後往前算):your everyth
say substr $str,5,4,"fairy's"; # 替換源字串,但返回提取子串:your
say $str; # 源字串已被替換:love fairy's everything
可以將substr函式作為左值(lvalue),這樣可以修改源變數,就像給了replacement引數一樣:
use 5.010;
$str="love your everything";
substr($str,5,4) = "fairy's";
say $str; # 源字串已被替換:love fairy's everything
index和rindex用來找出給定字串中某個子串或某個字元的索引位置。
用法:
(r)index string,substr,position
(r)index strding,substr
use 5.010;
$str="love you and your everything";
say index $str,"you"; # 輸出:5
say index $str,"yours"; # 輸出:-1
say index $str,"you",136; # 輸出:-1
say index $str,"you",6; # 從offset=6之後搜尋,輸出:13
say rindex $str,"you"; # 輸出:13
say rindex $str,"you",10; # 找出offset=10左邊的最後乙個you,輸出:5
用於返回字串的字元數量,不是位元組數。如果是位元組數,則採用unicode模組。
下面的例子中,將輸出11。
$str="hello world";
print length $str;
length不能直接作用於陣列和hash來統計元素個數。想要統計個數:
# 陣列元素個數
@arr=qw(aaa bbb ccc ddddd eee ff);
print scalar @arr; # 輸出6
# hash元素個數
%myhash=qw(aaa bbb ccc ddddd eee ff);
print scalar keys %myhash;
如果length的物件未定義,則返回undef。如果length的物件沒有字元但已定義,則返回0。 字串相關函式
strcmp 比較字串 strcmpi 忽略大小寫比較字串 upper 轉換為大寫 blanks 產生空字串 strmatch 查詢匹配的字串 strjust 對齊字元陣列,包括左對齊,右對齊和居中 strrep 替換字串 strncmp 比較字串的前n個字元 lower 轉換為小寫 deblank...
字串相關函式
1.模擬實現strcpystrcpy str1,str2 函式是把從str2位址開始且含有null結束符的字串複製到以str1開始的位址空間中,而且str2和str1所指記憶體區域不可以重疊。這就要求str1必須有足夠的空間來容納str2的字串。模擬實現strcpy 0 也會被拷貝進去,返回值為ch...
MySQL函式 字串函式
字串函式是mysql中最常用的一類函式,字串函式主要用於處理表中的字串。1 char length s 返回字串s的字元數 select char length 你好123 5 2 length s 返回字串s的長度 select length 你好123 9 3 concat s1,s2,將字串s...