'% 有两种相等运算符。一种是完全向后兼容的,标准的,如果两个操作数类型
不一致,它会在某些时候自动对操作数进行类型转换,考虑下面的赋值语句:
6# !
J*+# 2!
这两个变量含有相同的字符序列,但数据类型却不同,前者为 ,后者为 4',在使
用操作符时,'% 会尝试各种求值,以检测两者是否会在某种情况下相等。所以
下面的表达式结果为 #: 6J。
第二种操作符是严格的,它在求值时不会这么宽容,不会进行类型转换。所以表达
式 6J 的值为 5,虽然两个变量持有的值相同。
有时代码的逻辑要求你判断两个值是否不相等,这里也有两个选择: 和严格的 ,
它们的关系就类似于和。
讨论:
和 在求值时会尽可能地寻找值的匹配性,但你可能还是想在比较前进行显式的类型
转换,以帮助它们完成工作。比如,如果想判断一个用户的输入值(字符串)是否等于
一个数字,你可以让帮你完成类型转换:
5+)'#576#B#'@2HI
也可以提前转换:
5+%C+)'#576#2B#'@2HI
如果你比较习惯于强类型的编程语言+比如 EK 等2,那么这里你可以延续你的习惯+类型
转换2,这样也会增强程序的可读性。
有一种情况需要注意,就是计算机的区域设置。如果用 ,和1来比较字符串,那么
'% 把它们作为 F') 来比较,但显然,人们在浏览网页时不会把文本当作 F')
来阅读2比如在西班牙语中,按照传统的排序, '.将作为一个字符排在'和)之间。
'E%+2提供了一种方式,可以帮助你使用默认区域设置下的字符排序规则。
!--要排序的字符串数组,假设已经得到初始化
+5#'>+42H#'E%+42I2!--调用 +2方法进行排序
六、字符串的查找
问题:
判断一个字符串是否包含另一个字符串。
解决方案:
使用 的 )735+2方法:
34)735+#4LC)7M2