C# 中有获得字符串长度的函数吗?

luojingpretty 2010-06-28 10:42:52
例如string a="F2查询查询查询查询查询查询查询查询"
a.Length好像获得的不是字符串a的长度,请教各位,怎样可以获得a的长度呢?
...全文
3670 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
gavinrexl 2012-02-10
  • 打赏
  • 举报
回复
那,想要获取字符串的长度怎么办呢??
xiangyueming 2010-06-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 yhb417 的回复:]
C# code

string a="F2查询查询查询查询查询查询查询查询"
byte[] b = Encoding.Default.GetBytes(a);
int m = b.Length;
[/Quote]
三楼的就可以了
zhuhongjia1987 2010-06-28
  • 打赏
  • 举报
回复
同意3楼
enderboy520 2010-06-28
  • 打赏
  • 举报
回复
顶贴吧
带你一起飞吧 2010-06-28
  • 打赏
  • 举报
回复
是字节长度,一个汉字占两个字节
s8975565 2010-06-28
  • 打赏
  • 举报
回复
我没看错吧? s.length不是长度吗?
你要的是字符串的长度还是字节的长度?
如果是字节的,4楼3楼的都可以!
liuhengwinner 2010-06-28
  • 打赏
  • 举报
回复
我们面临的基本问题是世界上的书写语言不能简单地用256个8位代码表示。以前的解决方案包括代码页和DBCS已被证明是不能满足需要的,而且也是笨拙的。那什么才是真正的解决方案呢?

身为程序写作者,我们经历过这类问题。如果事情太多,用8位数值已经不能表示,那么我们就试更宽的值,例如16位值。而且这很有趣的,正是Unicode被制定的原因。与混乱的256个字符代码映像,以及含有一些1字节代码和一些2字节代码的双字节字符集不同,Unicode是统一的16位系统,这样就允许表示65,536个字符。这对表示所有字符及世界上使用象形文字的语言,包括一系列的数学、符号和货币单位符号的集合来说是充裕的。

明白Unicode和DBCS之间的区别很重要。Unicode使用(特别在C程序设计语言环境里)「宽字符集」。「Unicode中的每个字符都是16位宽而不是8位宽。」在Unicode中,没有单单使用8位数值的意义存在。相比之下,在双字节字符集中我们仍然处理8位数值。有些字节自身定义字符,而某些字节则显示需要和另一个字节共同定义一个字符。

处理DBCS字符串非常杂乱,但是处理Unicode文字则像处理有秩序的文字。您也许会高兴地知道前128个Unicode字符(16位代码从0x0000到0x007F)就是ASCII字符,而接下来的128个Unicode字符(代码从0x0080到0x00FF)是ISO 8859-1对ASCII的扩展。Unicode中不同部分的字符都同样基于现有的标准。这是为了便于转换。希腊字母表使用从0x0370到0x03FF的代码,斯拉夫语使用从0x0400到0x04FF的代码,美国使用从0x0530到0x058F的代码,希伯来语使用从0x0590到0x05FF的代码。中国、日本和韩国的象形文字(总称为CJK)占用了从0x3000到0x9FFF的代码。

Unicode的最大好处是这里只有一个字符集,没有一点含糊。Unicode实际上是个人计算机行业中几乎每个重要公司共同合作的结果,并且它与ISO 10646-1标准中的代码是一一对应的。Unicode的重要参考文献是《The Unicode Standard,Version 2.0》(Addison-Wesley出版社,1996年)。这是一本特别的书,它以其它文件少有的方式显示了世界上书写语言的丰富性和多样性。此外,该书还提供了开发Unicode的基本原理和细节。

cftea 2010-06-28
  • 打赏
  • 举报
回复
Length 获得的就是长度。
若是要为了存入 varchar 字段方便,可这样获取占用的字节数。
int l = System.Text.Encoding.GetEncoding("gb2312").GetByteCount(a);
Alden 2010-06-28
  • 打赏
  • 举报
回复
a.length 是字符串的长度,
string s = "abc你好";
s.length的长度为5;
要想获得7,使用正则表达式[^\x00-\xff]看看是否可以。
修改一下昵称 2010-06-28
  • 打赏
  • 举报
回复

string a="F2查询查询查询查询查询查询查询查询"
byte[] b = Encoding.Default.GetBytes(a);
int m = b.Length;

liuhengwinner 2010-06-28
  • 打赏
  • 举报
回复
a.Length 是字符串的长度
assky124 2010-06-28
  • 打赏
  • 举报
回复
Length 就是长度,一个汉字占两个字节
luojingpretty 2010-06-28
  • 打赏
  • 举报
回复
谢谢你们,3楼说的对。

111,120

社区成员

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

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

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