ABAP 辨析CO|CN|CA|NA|CS|NS|CP|NP - 斌将军
source link: https://www.cnblogs.com/BinGeneral/p/17154705.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
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
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK