C# 中有关String.Length

wyx819 2012-04-08 02:08:40
对于String obj = "噢噢噢噢"; 和String str="abcd"
为什么两者的String.Length都是4?
String 是如何存放字符的?
...全文
421 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
orochiheart 2012-04-08
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]
这个是字符长度数字,并不是字节长度
[/Quote]
+1 每个都是4个字符 无论是字母还是汉字 都是字符 这样理解就容易了
anzhiqiang_touzi 2012-04-08
  • 打赏
  • 举报
回复
这个是字符长度数字,并不是字节长度
ycproc 2012-04-08
  • 打赏
  • 举报
回复

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

在某些语言(例如 C 和 C++)中,null 字符指示字符串的结尾。 在 .NET Framework 中,null 字符可以嵌入到字符串中。 当字符串包含一个或多个 null 字符时,这些空字符将包括在字符串的总长度中。 例如,在下面的字符串中,子字符串“abc”和“def”由一个 null 字符分隔。 Length 属性返回 7,表示它包含六个字母字符以及一个 null 字符。

http://msdn.microsoft.com/zh-cn/library/system.string.length.aspx
flyerwing 2012-04-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
呵呵,还停留在c++的思维和ASCII,刚学c#
[/Quote]
用64位操作系统吧
  • 打赏
  • 举报
回复
unicode,一个汉字长度也是1
hs205118hs205118 2012-04-08
  • 打赏
  • 举报
回复
呵呵,以前还没注意过呢。
meceky 2012-04-08
  • 打赏
  • 举报
回复
恩,是编码问题!一个汉字也是一位!
cnfczn 2012-04-08
  • 打赏
  • 举报
回复
编码问题
bdmh 2012-04-08
  • 打赏
  • 举报
回复
因为默认是unicode编码,一个汉字也是1个长度
wyx819 2012-04-08
  • 打赏
  • 举报
回复
呵呵,还停留在c++的思维和ASCII,刚学c#
真相重于对错 2012-04-08
  • 打赏
  • 举报
回复
了解一下什么是unicode

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧