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

最新文章

  1. 注解:Hibernate双向N->N关联(两端都控制关联关系)
  2. app标配控制器:UITabBarController
  3. Oracle Form Data Entry Sample
  4. Asp.net useful tools
  5. notepad++ 各类插件学习记录
  6. [USACO2003][poj2187]Beauty Contest(凸包+旋转卡壳)
  7. 保存会话数据——session学习
  8. [转载].Net中如何操作IIS(源代码)
  9. Linux下Openssl的安装全过程
  10. ARCI--做事情的重要方法论
  11. 【USACO 1.3.2】修理牛棚
  12. eclipse 库 library jar包 工程 总结
  13. oracle where与having
  14. 随笔: WC2016感想
  15. Binders 与 Window Tokens(窗体令牌)
  16. 线程池与Threadlocal
  17. 网口划VLAN
  18. Android Parcelable和Serializable的区别
  19. Chimee - 简单易用的H5视频播放器解决方案
  20. Lazarus下改变DBGrid记录的颜色,与Delphi不同了。

热门文章

  1. Linux 系统环境监测
  2. TabControl控件的简单使用-添加tab
  3. Django中ORM多对多三种创建方式(全自动-纯手动-半自动)
  4. 【转载】SQL 2012以上版本分页查询更简单
  5. (四)elasticsearch 源码之索引流程分析
  6. JS加载层
  7. 数据结构——八大排序算法(java部分实现)
  8. [Unity]Update()与FixedUpdate()
  9. Java学习笔记:2022年1月11日
  10. 一个关于sum over的疑问