ICU:使用哪种比较API?

时间:2016-04-14 10:12:10

标签: unicode icu

我阅读了有关ICU提供的不同比较API的文档,但无法区分它们。

int8_t icu::UnicodeString::compare  (const UnicodeString &text  )   const

int8_t icu::UnicodeString::caseCompare  (
        int32_t start, 
        int32_t     length, 
        const UChar * srcChars, 
        int32_t     srcStart, 
        int32_t     srcLength, 
        uint32_t    options 
    )       

virtual EComparisonResult icu::Collator::compare(   
       const UnicodeString &source, 
        const UnicodeString &target 
    )   

能够对UTF16字符串执行不区分大小写的操作,哪种API符合要求?为什么?

谢谢!

1 个答案:

答案 0 :(得分:1)

来自文档:

  • UnicodeString::compare - 这是一个按位(精确)比较。因此,Aa
  • UnicodeString::caseCompare - 这可能是您想要使用的内容,但请继续阅读。 A = aß = ss等。您可以看到this demo来进行比较。
  • Collat​​or - 这是locale-sensitive collation这是一个不同的工具。是的,您可以使用正确的选项进行区分大小写的比较。但它也会进行更强大的比较,例如black-bird = BlackBird

希望这有帮助。