SortedCollection忽略字符串中的大小写

购物车经理

默认情况下,aSortedCollection是区分大小写的(考虑到当今如何使用String,这让我感到惊讶),例如

list := #('z' 'c' 'C' 'A' 'a').
slist := list asSortedCollection. "a SortedCollection('A' 'C' 'a' 'c' 'z')"

使用Spotter,我发现caseInsensitiveLessOrEqual:但不确定如何将其与结合使用SortedCollection如何轻松获得忽略大小写的排序集合?

购物车经理

asSortedCollection: 也需要一个排序块:

list := #('z' 'c' 'C' 'A' 'a').
slist := list asSortedCollection: 
    [ :a :b | a caseInsensitiveLessOrEqual: b ]. "a SortedCollection('a' 'A' 'C' 'c' 'z')"

编辑这是一个获得一致订单的解决方案(这很丑陋,我是从钻研而来的caseInsensitiveLessOrEqual:

caseInsensitiveCompare := [ :a :b | | result | 
    result := a compare: b caseSensitive: false.
    "equal ignoring case" 
    result = 2 ifTrue: [ a compare: b caseSensitive: true ].
    "less than, so return true (else return false since result=2)" 
    result = 1  ].

slist := list asSortedCollection: caseInsensitiveCompare. 
"a SortedCollection('A' 'a' 'C' 'c' 'z')"

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

忽略Scala中字符串的大小写

忽略Java中字符串的“包含”大小写

忽略Python字符串中的大小写

使用.include忽略字符串中的大小写?

Python-字符串中的“不区分大小写”或“大小写忽略”

如何比较忽略大小写的字符串

比较时是否忽略字符串的大小写?

替换字符串并忽略大小写Python

字符串包含-忽略大小写

如何忽略字符串的大小写来计算字符串中每个单词中字符的出现?

检查字符串是否包含忽略大小写的数组中的元素(JavaScript)

使用lodash从角度8的列表中删除重复的字符串(忽略大小写)

比较两个字符串,忽略C#中的大小写

如何在字符串比较中忽略大小写

在 Pandas 中拆分字符串忽略大小写

Solr:如何在字段类型“字符串”中搜索忽略大小写的记录?

在Java中,如何检查字符串是否包含子字符串(忽略大小写)?

如何在Angular中检查字符串是否包含忽略大小写的子字符串

将字符串与字符串数组进行比较,忽略大小写

排序字符串忽略大小写;大写优先的相等字符串

在Eclipse中更改字符串的大小写

匹配XText中的字符串,无论大小写

计算列中的大小写“字符串”

匹配字符串python中的大小写单词

区分大小写的字符串

PHP中的字符串型大小写,是字符串还是字符串?

检查字符串是否包含忽略大小写的字符

Java流排序与字符串比较忽略大小写

SQL-在搜索字符串时忽略大小写