ABAP 辨析CO|CN|CA|NA|CS|NS|CP|NP

2023-02-25 21:01:22

1、檔案說明

本篇檔案將通過舉例,解析字元的比較運運算元之間的用法和區別,涉及到的操作符:CO|CN|CA|NA|CS|NS|CP|NP

2、用法和區別

用法總覽

以下舉例,幾乎都使用一個字元變數和一個寫死字元進行對比的方式,忽略尾部空格,所以需要注意

凡是比較尾部空格的,需要特別注意變數的長度和字元的長度,考慮尾部空格對結果的影響

2.1、CO僅包含

S1 僅含有 S2中的字元(區分大小寫,比較尾部空格)

2.1.1、S1僅有a等於S2中的a,其實還有個尾部空格

去掉尾部空格(尾部空格參與比較的運運算元同理)

實際的內容是這樣,S1除了a,還包含4個尾部空格,而S2中沒有尾部空格,因此結果為FALSE

2.1.2、S1含有S2中沒有的c

2.2、CN包含以外

S1包含S2中以外的字元(區分大小寫,比較尾部空格)

2.2.1、S1包含S2中沒有的c

2.2.2、S1僅有a等於S2中的a,沒有其他S2以外的字元

2.3、CA包含任意

S1至少包含S2中的任意一個字元(區分大小寫,比較尾部空格)

2.3.1、S1包含S2中的a,其實還有個尾部空格

如果變數直接比較,包含尾部空格,其實是用空格進行了對比,所以任何情況結果都是TRUE

2.3.2、S1沒有包含S2中的任何字元

2.4、NA不包含任意

S1不包含S2的任意一個字元(區分大小寫,比較尾部空格)

2.5、CS包含字串

S1包含S2整個字串

2.6、NS不包含字串

S1不包含S2整個字串

2.7、CP符合模式

S1符合S2的模式

此處使用"*"和"+"作為萬用字元

"*"匹配"字串"

"+"匹配"字元"

如果需要區分大小寫,需要匹配*和+字元,需要匹配空格,則需要通過#號進行跳脫

大小寫要求:#B #c

 匹配*或+

匹配空格

2.8、NP不符合模式

S1不符合S2的模式

3、特殊情況

除了以上要注意區分大小寫和字元尾部空格外,還需要注意變數型別

例如:CO中,如果S2 type string型別,且為初始值,S1無論何值,結果都是FALSE

如果 S1 type string型別,且為初始值,S2無論何值,結果都是TRUE

 再例如:CA中,S1或S2為string型別,且為初始值,則結果都是FALSE