none
string 类型字符串 大小的比较 RRS feed

  • 问题

  • 最近发现一个问题,int型是直接比较大小的,string型呢,比如说我有string a="9", string b="10",这个a,b比较的大小是哪个?原理是什么? 有例如我有string s1="微软",string s2="microsoft",这个s1跟 s2又那个大?原理是什么
    2010年11月9日 9:47

答案

  • 你好

    比较字符串是按照字符串中的字符一个个比较的 只要一个字符不相同 那么就停止比较得出结果

    而字符的比较则是比较其Unicode值 而非ascii码值 因为ASCII是不可能容纳下全世界这么多种语言这么多字符的


    Raymond Tang (Microsoft C# MVP)
    Denn Ich Gehoer nur mir
    .NET交流群71840452
    微软中文论坛同城社区成都QQ群:74268428
    My Chinese Blog
    Chengdu,Sichuan Province,China
    • 已标记为答案 .Snowy 2010年11月10日 5:38
    2010年11月10日 2:36
    版主

全部回复

  • 最近发现一个问题,int型是直接比较大小的,string型呢,比如说我有string a="9", string b="10",这个a,b比较的大小是哪个?原理是什么? 有例如我有string s1="微软",string s2="microsoft",这个s1跟 s2又那个大?原理是什么
    dear
    字串比较有很多种方法,请参考
    http://msdn.microsoft.com/zh-cn/library/fbh501kz.aspx
    http://msdn.microsoft.com/zh-cn/library/cc165449.aspx

    秘訣無它,唯勤而已
    2010年11月9日 11:05
  • 最近发现一个问题,int型是直接比较大小的,string型呢,比如说我有string a="9", string b="10",这个a,b比较的大小是哪个?原理是什么? 有例如我有string s1="微软",string s2="microsoft",这个s1跟 s2又那个大?原理是什么
    dear
    字串比较有很多种方法,请参考
    http://msdn.microsoft.com/zh-cn/library/fbh501kz.aspx
    http://msdn.microsoft.com/zh-cn/library/cc165449.aspx

    秘訣無它,唯勤而已
    方法我知道是这样定义的,MS已经给了一个比较的方法,但是为什么是这样比较的,我需要了解它的原理,是转成ascii码值在进行比较吗?
    2010年11月10日 2:05
  • 你好

    比较字符串是按照字符串中的字符一个个比较的 只要一个字符不相同 那么就停止比较得出结果

    而字符的比较则是比较其Unicode值 而非ascii码值 因为ASCII是不可能容纳下全世界这么多种语言这么多字符的


    Raymond Tang (Microsoft C# MVP)
    Denn Ich Gehoer nur mir
    .NET交流群71840452
    微软中文论坛同城社区成都QQ群:74268428
    My Chinese Blog
    Chengdu,Sichuan Province,China
    • 已标记为答案 .Snowy 2010年11月10日 5:38
    2010年11月10日 2:36
    版主
  • DEAR

    應該是將字串轉成字元陣列,然後做比較,詳細的演算法您可以用reflector工具來觀察


    秘訣無它,唯勤而已
    2010年11月10日 3:43