string s = "ābç";
int length = s.Length;

单项选择:
字符串s的长度是?
    A:3       B:4      C:5       D:6
小游戏,建议先回答再作试验。

解决方案 »

  1.   

    试了一下,s.ToCharArray()就明白了。。
      

  2.   

    ābç
    把光标放到组后一个字符处按退格键,看看退几次才会把这个字符串都删掉就知道它的长度是多少了~~
      

  3.   

    ā  2   
    b  1
    ç  2
    在去试下、
      

  4.   

    Length 属性返回此实例中 Char 对象的个数,而不是 Unicode 字符个数。原因在于一个 Unicode 字符可能会用多个 Char 表示。使用 System.Globalization.StringInfo 类来处理每个 Unicode 字符而不是每个 Char。问题不难...找这两个字听难的...
      

  5.   


        string s = "a\u0304bc\u0327";             //string s = "ābç";    StringInfo si = new StringInfo(s);
        int length = s.Length;                    // length = 5
        int count = si.LengthInTextElements;      // count = 3//  双字节的Unicode最多可以支持六万多个字符。六万多个字符在绝大多数的情况下是够用的,
    //  但也没办法表示世界上所有的字符,比如单单《康熙字典》就超过四万五千个字。
    //  UTF-16的处理方式就是采用扩展,对某些字符用四个字节来表示。因此,
    //  上述的字符串虽然只有三个字符,但由于第一第三个字符要用两个char来表示,总长度为五。
    //
    //  那么在C#里如何处理扩展字符?.Net类库提供了System.Globalization.StringInfo类,
    //  通过此类我们可以用LengthInTextElements()取得实际字符的个数,
    //  也可以用SubstringByTextElements()来抽取每一个的字符。有兴趣的朋友可以参考StringInfo类,和Unicode。