• .NET Conf China
...

求字符串“我们中国China”的长度.

monkey_li 2006-09-04 11:45:38
在C#中如果用下面的计算方法,求的值是9。
string b="我们中国China";
Response.Write(b.Length.ToString());
但是我要把汉字和英文分开算,一个汉字按照两个字符计算,一个英文就按照一个字符计算。请问如何计算才能得到其长度是13。谢谢了,用C#的代码。
...全文
给本帖投票
559 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
shrinerain 2006-09-05
  • 打赏
  • 举报
回复
see System.Text.Encoding.Default.GetBytes
monkey_li 2006-09-05
  • 打赏
  • 举报
回复
我自己在网上找到一点灵感修改了一下可以搞定,那位还有好的一起来交流交流。
public int GetStringLength(string unicodeString)
{
char[] chars = unicodeString.ToCharArray();
string asciiString = string.Empty;
int i=0;
foreach (char code in chars)
{
if( (short)code > 255)
{
i+=2;
}
else
{
i+=1;
}
}
return i;
}
hy_lihuan 2006-09-05
  • 打赏
  • 举报
回复
代码在单位里面,今天睡觉了,明天贴上来吧
hy_lihuan 2006-09-05
  • 打赏
  • 举报
回复
沙发
daishengs 2006-09-05
  • 打赏
  • 举报
回复
Encoding
ldw701 2006-09-05
  • 打赏
  • 举报
回复
mark
真相重于对错 2006-09-05
  • 打赏
  • 举报
回复
string b="我们中国China";
byte[] blen = System.Text.Encoding.ASCII.GetBytes(b);
int len = blen.Length;
zhangxiaopin 2006-09-05
  • 打赏
  • 举报
回复
public int ContentLength(string strTemp)
{
return System.Text.Encoding.Default.GetBytes(strTemp).Length;
}
debug1984 2006-09-05
  • 打赏
  • 举报
回复
byte[] r=Encoding.Default.GetBytes(b);
Response.Write(r.Length.ToString());

62,239

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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

手机看
关注公众号

关注公众号

客服 返回
顶部