4.1.17 字串的操作

這裡主要說明截取子字串、字串的長度、大小寫轉換、尋找某子字串等操作

子字串

比如:$str="mynameis"; "myn" 就是 "mynameis" 的子字串。

Perl 提供 substr 這函式,可以幫我們截取子字串。

語法:

傳回子字串 = substr 字串, 開始位置, [截取長度]

註:開始位置由 0 計數起,若開始位置之值為負整數,則由字串結尾開始計算截取位置,
比如:-1 表示最後一個字元開始截取,-3 表示倒數第三個字元開始截取。若省略了截取
長度,則表示由開始截取位置一直到字串結束。

例:

$str = "ABCDEFG1234567";

$a = substr $str, 0, 5;   # 由第一個字元開始截取 5 個字元長度

print $a;

# 得:ABCDE


$a = substr $str, 3, 4;   # 由第 4 個字元開始截取 4 個字元長度

print $a;

# 得:DEFG


$a = substr $str, 5;   # 第6個字元開始截取至字串結束

print $a;

# 得:FG1234567


$a = substr $str, -1;   # 最後一個字元

print $a;

# 得:7


$a = substr $str, -4, 2;   # 最後第四個字元開始截取2個字元長度

print $a;

# 得:45

字串的長度

Perl 提供 length 函式,可用來計算字串的長度。

語法:

$str="我們一起看雲去";
$str_len = length($str);

print $str_len, "\n\n";

轉換大小寫

Perl 提供 uc / lc 函式,可轉字串為大寫/小寫。

語法:

# 轉成大寫
$str = uc(字串);

# 轉成小寫
$str = lc(字串);

$str="abCD99e";
$str = uc($str);   # 此時 $str 為 ABCD99E
$str = lc($str);   # 此時 $str 為 abcd99e


找尋子字串

Perl 提供 index 函式,可在字串中找尋某一子字串的起始位置。

語法:

$pos = index($str1, $str2);

# 找尋 $str2 在 $str1 中的起始位置

找尋子字串的最後位置

Perl 提供 rindex 函式,可在字串中找尋某一子字串最後的起始位置。

語法:

$pos = rindex($str1, $str2, $pos);

# 由 $str1 的 $pos 位置開始找起,找尋 $str2 在 $str1 中最後的起始位置
# 若 $pos 省略,則由字串的最後面開始找。

傳回 ASCII 值

Perl 提供 ord 函式,可傳回某一字元的 ASCII 值。

語法:

$num = ord(字元);


用例:

$num = ord('a');

print "$num\n";

chr 函式,則可將 ASCII 值轉成字元。

語法:

$char = chr(數字);


用例:

$char = chr(48);

print "$char\n";