• 10645阅读
  • 2回复

QString的比较,按字典顺序,有区分大小写和不区分大小写? [复制链接]

上一主题 下一主题
离线jedychen
 

只看楼主 倒序阅读 楼主  发表于: 2007-03-07
— 本帖被 XChinux 执行加亮操作(2008-07-27) —
  compare()函数可以提供 CaseSensitive,但不是按字典顺序: "41" < "4_"
但是localeAwareCompare()没有Case选项,但是按字典顺序 : "41" > "4_"
有没有按字典顺序,可以带Case选项的?
[ 此贴被XChinux在2008-07-27 12:41重新编辑 ]
离线zeki709

只看该作者 1楼 发表于: 2007-03-12
compare()是按unicode值比较的,localeAwareCompare()是按本地locale比较的
如果不分大小写,可以先用toUpper()转换然后比较
离线jedychen

只看该作者 2楼 发表于: 2007-03-13
我这样的:
bool CMyData::operator<=(const QMyData & other)
{
  if( m_str.compare(other.m_str)==0 )
      return true;
  else
      return m_str.localeAwareCompare(other.m_str)<0;
}
快速回复
限100 字节
 
上一个 下一个