官术网_书友最值得收藏!

3.4 字符串的定制化輸出

字符串這種數(shù)據(jù)往往是非結(jié)構(gòu)化的,因此在實際工作中往往要對其進行一定的調(diào)整才能夠使用,下面將介紹幾種常見的字符串定制化輸出,包括大小寫轉(zhuǎn)化、空格的補全與縮減等。

1.字符串大小寫轉(zhuǎn)換

實現(xiàn)字符串大小寫轉(zhuǎn)換的函數(shù)包括str_to_lower/str_to_upper/str_to_title/str_to_sentence。英文字母需要區(qū)分大小寫,但是很多場景下一些問題是大小寫不敏感的,因此可能需要統(tǒng)一。str_to_lower函數(shù)和str_to_upper函數(shù)能夠分別把英文字符串統(tǒng)一轉(zhuǎn)換為小寫格式和大寫格式:

標(biāo)點符號沒有大小寫之分,因此不會進行轉(zhuǎn)換。還有一種轉(zhuǎn)換方法叫作“標(biāo)題轉(zhuǎn)換”,能夠?qū)⑺袉卧~的首字母改為大寫,但是其他部分則轉(zhuǎn)為小寫格式,如下所示。

可以看出,所有單詞的首字母都轉(zhuǎn)化為大寫,其余則轉(zhuǎn)化為了小寫形式。

最后介紹讓英文符合句子中的轉(zhuǎn)化函數(shù)str_to_sentence,它能夠把所有內(nèi)容按照正常句子的形式輸出,如下所示。

因為兩個單詞中間是逗號,因此第二個單詞是小寫,完全符合英文中句子的格式。

2.指定字符串的輸出長度

指定字符串輸出長度的函數(shù)包括str_pad/str_trunc。字符串的長短不一,但是有的時候輸出的字符串需要指定固定的長度。如果字符串短了,則需要補充其他字符;如果字符串長了,則需要截斷。在補全的過程中,一般會使用空格進行填充。例如在一個長度為 30的框中,要將文字內(nèi)容居中,就可以使用str_pad函數(shù)實現(xiàn),如下所示。

首先,函數(shù)保證輸出的字符串長度為30,而把side設(shè)定為“both”則表示在目標(biāo)字符串“HOPE”兩側(cè)補空格。如果需要讓“HOPE”靠左側(cè)或者右側(cè),可以把side參數(shù)分別設(shè)置為“l(fā)eft”或“right”,如下所示。

補全過程中也可以不用空格,而采用其他符號進行填充,例如下面用井號(“#”)進行填充。

這樣,兩側(cè)的空格就全部變?yōu)榫枺L度依然是30。如果字符太長,需要截斷,一般用省略號進行替代。例如我們前面保存在en_string中的英文句子,如果只能夠顯示 30個字符,那么可以用str_trunc函數(shù)進行截斷。

最后能夠保證字符串的長度依然是30,但是只有前27個字符是原來的句子成分,最后以3個句點構(gòu)成的省略號進行截斷。默認是截斷后方的內(nèi)容,其實也可以對前面內(nèi)容進行截斷。

截斷的符號也可以通過ellipsis參數(shù)進行設(shè)定,例如我們使用“!!!”作為末尾的截斷。

3.空格轉(zhuǎn)換(str_trim/str_squish)

在文本數(shù)據(jù)挖掘的時候,空格往往是不提供額外信息的。如果一個字符串左邊或右邊有大量的空格,那么就可以直接去除掉。str_trim函數(shù)能夠把任意字符兩邊所存在的空格全部清除掉。

如果只想清除左邊的空格,可以將side參數(shù)設(shè)定為“l(fā)eft”。

此外,如果空格不在兩端,一般不會進行處理。但是實際工作中發(fā)現(xiàn)有的空格在行文之間具有很大的長度,因此還需要進行特殊處理。str_squish函數(shù)就可以做到這一點,它不僅能夠把兩端的空格全部清除掉,還能夠把任意長度大于1的空格都縮減為長度為1的空格,如下所示。

主站蜘蛛池模板: 科技| 宁安市| 商洛市| 社会| 淳安县| 鹿泉市| 永春县| 陆河县| 阜新| 嘉鱼县| 贵定县| 宜兰市| 达拉特旗| 钦州市| 屏东县| 扎兰屯市| 文成县| 新田县| 丰城市| 南昌县| 华宁县| 长垣县| 江陵县| 万荣县| 砚山县| 南城县| 张家港市| 乌恰县| 海南省| 沂南县| 深泽县| 北辰区| 资源县| 南京市| 米脂县| 小金县| 耒阳市| 山丹县| 珲春市| 毕节市| 灵寿县|