超简单C#获取带汉字的字符串真实长度(单个英文长度为1,单个中文长度为2)
作者:wdc 时间:2021-11-13 20:37:55
正常情况下,我们是直接去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;
通过系统提供函数我们就可以获取中文的真实长度,是不是很简单
来源:http://www.cnblogs.com/haibing0107/p/5825600.html
标签:C#字符串
0
投稿
猜你喜欢
SpringBoot整合activemq的案例代码
2023-11-06 18:41:37
Android垂直切换的圆角Banner与垂直指示器相关介绍与应用详解
2023-01-09 02:59:15
java服务器的简单实现过程记录
2023-01-18 06:44:34
java线程并发控制同步工具CountDownLatch
2022-09-02 12:18:06
Spring Boot实现发送邮件
2023-11-08 22:19:40
Java中static静态变量的初始化完全解析
2023-11-27 21:03:39
IDEA中sout快捷键无效问题的解决方法
2023-11-28 21:27:02
验证码的三个常见漏洞和修复方法
2023-10-25 17:46:26
Java实现五子棋游戏的完整代码
2022-07-01 15:32:34
Android View移动的3种方式总结
2022-04-29 02:04:47
C#使用Socket实现局域网聊天
2021-07-20 02:13:20
Android优雅地处理按钮重复点击的几种方法
2021-11-23 05:09:14
Java枚举的七种常见用法总结(必看)
2022-10-10 08:38:43
在eclipse中中文汉字乱码的解决方案
2023-11-25 10:13:27
Spring探秘之如何妙用BeanPostProcessor
2021-07-01 22:41:46
c# DevExpress gridcontrol日期行的显示格式设置
2022-07-11 05:28:52
Android4.4 WebAPI实现拍照上传功能
2023-08-17 00:46:21
C#利用性能计数器监控网络状态
2022-01-05 00:13:53
Spring如何解决单例bean线程不安全的问题
2023-12-18 23:50:20
Android获取和读取短信验证码的实现方法
2021-09-06 07:29:17