字串函式

2021-07-25 07:52:04 字數 2599 閱讀 4623



字串函式在任何乙個應用中都得到了廣泛的應用,報表工具也不例外,一般報表工具都會提供一部分的字串處理的函式,例如獲取子串、去掉空格、字元轉換(字元轉unicode或unicode轉字元)、取字元長度、大小寫轉換、等等,隨便都可以列出很多應用。

這些函式具體到每乙個來說,並不是太難,程式設計師自己程式設計也能實現,但是字串函式的應用非常多,乙個兩個甚至十個二十個程式設計師都可以自己寫,太多了精力上就顧不過來了。

舉幾個簡單的例子:

1、 取子串:有左子串、右子串、從中間取子串

2、 去掉空格:從左邊去掉空格、從右邊去掉空格、從兩邊去掉空格

3、 大小寫轉換:把字串轉為大寫、轉為小寫、首字母大寫等

上述只是一些比較常見的應用,還有更加麻煩複雜一些的,比如:

字串分割:把某個字串按照分隔符分割成乙個字串陣列。

這個需求乍一聽很簡單,其實做起來並不容易,首先分割符要求能夠靈活定義,不能寫死;其次分隔符可能一位可能多位;接著解析分隔符的時候有時候需要解析引號裡的,有時候不能解析引號裡的,也就是說,如果引號裡有分隔符要不要分割?引號有單引號還有雙引號,除了引號還有括號,括號裡的字元也可能存在分割與不分割兩種情況,而且括號還分成小括號、中括號、大括號等等。這麼仔細一想,頭大了吧?

同樣的需求在字串替換裡也存在,比如把某個字串中的d替換成cc,這時候也需要考慮引號裡的要不要替換,括號裡的要不要替換等等諸多情況。

再舉乙個例子,如:

數字大小寫轉換:把數字轉換成大寫的漢字

這個例子聽起來好簡單啊,不就是把1替換成一,把2替換成二嗎?誰不會呀!在實際應用中就兩碼事了,首先大寫的數字有兩種,一二三四五六七 和 壹貳叄肆伍陸柒,你需要提供引數配置替換成哪一種,另外,數字替換的時候有時候不需要個十百千這類標明數值位數和大小的字元,有時候卻需要,你是否也應該提供引數配置?當然十百千也有另一種寫法:拾佰仟。呵呵,足夠複雜了吧?

不過不用害怕,一般來說,貼心的報表工具都會提供大量的字串解析函式,字串解析函式越多,其引數選項越靈活,報表工具就越好用。潤幹報表提供了大量的字串解析函式,而且每乙個函式都提供了多個靈活的引數供選擇,比如上面說到的數字大小寫轉換,潤幹報表乙個函式就搞定了,因此引數足夠靈活也非常重要。有些報表工具廠商不善於對功能進行抽象總結,不知道在引數的靈活配置上下功夫,結果每一種需求都增加乙個函式,最後搞得函式的個數非常多,使用者無所適從,不知道該用哪個。

舉幾個潤幹字串函式的介紹:

字串分割函式

函式說明:

將字串按分割符分割成多個子串

語法:

split( srcexp,sepexp)

引數說明:

srcexp 待分割的字串表示式

sepexp 分隔符表示式

boolexp bool型,是否解析引號、括號裡的分隔符,

為true時解析,為false時不解析,預設為false

返回值:

分割後的字串列表

示例:

例1:=split(「ab;cd;ef;tg;tt」,」;」) 返回陣列:["ab","cd","ef","tg","tt"]

例2:=split(「ab;c』d;e』f;tg;tt」,」;」,false) 返回陣列:["ab","c'd;e'f","tg","tt"] 不解析引號裡的分隔符

例3:=split(「ab;c[d;e]f;tg;tt」,」;」,false) 返回陣列:["ab","c[d;e]f」,」tg」,」tt」] 不解析括號裡的分隔符

例4:=split(「ab;c』d;e』f;tg;tt」,」;」,true) 返回陣列:["ab","c'd","e'f","tg","tt"] 解析引號裡的分隔符

例5:=split(「ab;c[d;e]f;tg;tt」,」;」,true) 返回陣列:["ab","c[d","e]f」,」tg」,」tt」] 解析括號裡的分隔符

將數字轉換成大寫

函式說明:

將乙個整數轉化成漢字大寫

語法:

chn( intexp} )

引數說明:

intexp 整數表示式

abbrivateexp 為true時採用億萬千百十的寫法,

為false時採用一二三四五六七的寫法,預設為false

uppercaseexp 為false時採用零一二三四五六七**十百千,

為true時採用壹貳叄肆伍陸柒捌玖拾佰仟,預設為false

返回值:

字元型示例:

例1:chn(1234567,true) 返回:」一百二十三萬四千五百六十七」

例2:chn(1234567) 返回:」一二三四五六七」

例3:chn(1234567,true,true) 返回:」壹佰貳拾叄萬肆仟伍佰陸拾柒」

例4:chn(1234567,,false) 返回:」一二三四五六七」

字串和字串函式

字元輸入輸出 getchar putchar ch getchar putchar ch 字串函式 字串輸入 建立儲存空間 接受字串輸入首先需要建立乙個空間來存放輸入的字串。char name scanf s name 上述的用法可能會導致程式異常終止。使用字串陣列 可以避免上述問題 char na...

字串和字串函式

1.字串字面量 字串常量 用雙引號括起來的內容稱為字串字面量,也叫字串常量。字串常量屬於靜態儲存類別,這說明如果在函式中使用字串常量,該字串只會被儲存一次,在整個程式的生命期內存在,計時函式被呼叫多次。用雙引號括起來的內容被視為指向該字串儲存位置的指標。hello 中的 hello 類似於乙個陣列名...

字串函式

1 獲取字串的長度 length 2 判斷字串的字首或字尾與已知字串是否相同 字首 startswith string s 字尾 endswith string s 3 比較兩個字串 equals string s 4 把字串轉化為相應的數值 int型 integer.parseint 字串 lon...