时间:2021-05-19
正常情况下,我们是直接去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;通过系统提供函数我们就可以获取中文的真实长度,是不是很简单
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
话不多说,上代码:/***获取字符串的长度,如果有中文,则每个中文字符计为2位*@paramvalue指定的字符串*@return字符串的长度*/publics
本文实例讲述了C#区分中英文按照指定长度截取字符串的方法。分享给大家供大家参考。具体如下:这段C#代码用于按照指定的长度截取字符串,一个中文字符算2个字符,按照
方法一:varjmz={};jmz.GetLength=function(str){///获得字符串实际长度,中文2,英文1///要获得长度的字符串varrea
由于英文字符和数字字符所占的区位不一样,在统计中英文混排的字符串中,汉字的字符串长度获取不准确,本代码给出求中英文字符串长度的例子。本例子的具体算法思想是:(1
**处理过长的字符串,截取并添加省略号*注:半角长度为1,全角长度为2**pStr:字符串*pLen:截取长度**return:截取后的字符串*复制代码代码如下