c#获取带有汉字的字符串长度

简介: 不知道大家注意没,用c#下自带的str.Length方法获得字符串str长度的时候,返回的总是字符的个数,但是如果字符串中包含汉字的话,一个汉字是占两个字符长度的,获取的长度值就有了问题。 解决方案:  原文: http://www.cnblogs.com/haibing0107/p/5825600.html 正常情况下,我们是直接去string的length的,但是汉字是有两个字节的,所以直接用length是错的。

不知道大家注意没,用c#下自带的str.Length方法获得字符串str长度的时候,返回的总是字符的个数,但是如果字符串中包含汉字的话,一个汉字是占两个字符长度的,获取的长度值就有了问题。 
解决方案: 

原文: http://www.cnblogs.com/haibing0107/p/5825600.html

正常情况下,我们是直接去string的length的,但是汉字是有两个字节的,所以直接用length是错的。如下图:

 

所以应该用以下代码来获取长度:

复制代码
private void button1_Click(object sender, EventArgs e)
        {
            string s = textBox1.Text; int i = GetLength(s); MessageBox.Show(i.ToString()); } public static int GetLength(string str) { if (str.Length == 0) return 0; ASCIIEncoding ascii = new ASCIIEncoding(); int tempLen = 0; byte[] s = ascii.GetBytes(str); for (int i = 0; i < s.Length; i++) { if ((int)s[i] == 63) { tempLen += 2; } else { tempLen += 1; } } return tempLen; }
复制代码

运行结果如下图:

 

也可以用这个获取长度:

int i = System.Text.Encoding.Default.GetBytes(s).Length;
目录
相关文章
|
2月前
|
C#
C#的小例子和字符串(一)
C#的小例子和字符串(一)
127 0
|
2月前
|
C# 开发者
C# 10.0引入常量插值字符串:编译时确定性的新篇章
【1月更文挑战第22天】在C# 10.0中,微软为开发者带来了一项引人注目的新特性——常量插值字符串。这一功能允许在编译时处理和计算字符串插值表达式,从而得到可以在编译时确定的常量字符串。本文将深入探讨C# 10.0中常量插值字符串的概念、工作原理、使用场景及其对现有字符串处理方式的改进,旨在帮助读者更好地理解和应用这一强大的新特性。
|
2月前
|
C#
C#有关字符串的分割,替换,截取
C#有关字符串的分割,替换,截取
|
2月前
|
编译器 C# 开发者
C# 10.0中插值字符串的改进:灵活性与性能的双重提升
【1月更文挑战第19天】C# 10.0带来了对插值字符串的显著改进,进一步增强了这一功能的灵活性和性能。插值字符串是C#中处理字符串格式化的一种强大方式,它允许开发者直接在字符串中嵌入变量和表达式。在C# 10.0中,插值字符串不仅获得了语法上的简化,还通过新的编译时优化提高了运行时性能。本文将详细探讨C# 10.0中插值字符串的改进内容,以及这些改进如何为开发者带来更加高效和便捷的编程体验。
|
10天前
|
C#
技术经验分享:c#拆分字符串英文和数字(包括国外所以文字)
技术经验分享:c#拆分字符串英文和数字(包括国外所以文字)
技术经验分享:c#拆分字符串英文和数字(包括国外所以文字)
|
9天前
|
C#
C# 中的字符与字符串
C# 中的字符与字符串
7 0
|
2月前
|
C#
C#字符串
C#字符串
21 0
|
2月前
|
C#
C# 字节数组与INT16,float,double之间相互转换,字符数组与字符串相互转换,
C# 字节数组与INT16,float,double之间相互转换,字符数组与字符串相互转换,
101 1
|
2月前
|
JSON C# 开发者
C# 11.0引入自然字符串字面量:简化字符串处理的新时代
【1月更文挑战第26天】C# 11.0带来了一个令人兴奋的新特性:自然字符串字面量。这一特性旨在简化字符串的创建和处理,使开发者能够更直观地编写涉及多行字符串、转义字符和插值表达式的代码。自然字符串字面量不仅提高了代码的可读性,还减少了因转义字符引起的错误。本文将深入探讨C# 11.0中自然字符串字面量的概念、使用方法和其对现有字符串处理方式的改进。
|
2月前
|
存储 C# 索引
C# 字符串操作指南:长度、连接、插值、特殊字符和实用方法
字符串用于存储文本。一个字符串变量包含由双引号括起的字符集合
75 2