超简单C#获取带汉字的字符串真实长度(单个英文长度为1,单个中文长度为2)
正常情况下,我们是直接去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;
通过系统提供函数我们就可以获取中文的真实长度,是不是很简单
相关推荐
-
C#区分中英文按照指定长度截取字符串的方法
本文实例讲述了C#区分中英文按照指定长度截取字符串的方法.分享给大家供大家参考.具体如下: 这段C#代码用于按照指定的长度截取字符串,一个中文字符算2个字符,按照这个方法截取的字符串基本可以保持显示长度一致 /// <summary> /// 截取文本,区分中英文字符,中文算两个长度,英文算一个长度 /// </summary> /// <param name="str">待截取的字符串</param> /// <param nam
-
C#算法函数:获取一个字符串中的最大长度的数字
/// <summary> /// 获取字符串最长的数字 /// </summary> /// <param name="inputStr">输入字符串</param> /// <returns>最长数字</returns> public string GetMaxLenNumber(string inputStr) { //将字符串中的字符存放到数组中,便于处理 char[] strCharArray = inp
-
C#截取中英文混合指定长度字符串实例
复制代码 代码如下: using System.Text.RegularExpressions;using System.Text; /// <summary>/// 字符串长度(按字节算)/// </summary>/// <param name="str"></param>/// <returns></returns>static int StrLength(string str){ int len =
-
c#固定长度的随机字符串例子
复制代码 代码如下: /// <summary>/// 固定长度的随机字符串/// </summary>/// <param name="length">长度</param>/// <returns>随机串</returns>public static String getRandStringEx(int length){char[] charList = {'0','1','2','3','4','5','6',
-
c#实现获取字符串阵列中元素最长或最短的长度
下面有一个字符串阵列: string[] elements = {"adsf","etwert" ,"asdfasd","gs"}; 要求是获取元素最长或最短的长度. 你可以在程序中创建一个对象,这个对象有两个属性元素值和元素长度: Source Code class Class6 { private string _ElementValue; public string ElementValue { get { return
-
超简单C#获取带汉字的字符串真实长度(单个英文长度为1,单个中文长度为2)
正常情况下,我们是直接去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 st
-
使用纯JS代码判断字符串中有多少汉字的实现方法(超简单实用)
在网站开发中,经常会简单使用js代码来判断字符串中有多少汉字的功能.今天小编抽时间给大家分享实现代码.废话不多说了,直接给大家贴代码了. $("form").submit(function () { var content = editor.getContentTxt(); var sum = 0; re = /[\u4E00-\u9FA5]/g; //测试中文字符的正则 if (content) { if (re.test(content)) //使用正则判断是否存在中文 { if
-
JS实现超简单的汉字转拼音功能示例
本文实例讲述了JS实现超简单的汉字转拼音功能.分享给大家供大家参考,具体如下: /** * 中文字符串转化为拼音 * alert(convertToPinyinLower("你好啊")); */ function hash(_key,_value) { this.key = _key; // 拼音*/ this.value = _value; // ascii码*/ } // javascript 的自定义对象,用于存放汉字拼音数据字典*/ function dictionary()
-
javascript时间戳和日期字符串相互转换代码(超简单)
javascript时间戳和日期字符串相互转换代码(超简单) <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script type="text/javascript"> // 获取当前
-
js获取html的span标签的值方法(超简单)
HTML中代码为: <span id="testid">aaaa</span> 获取的js代码: 方法一:.innerText var x1 = document.getElementById("testid").innerText; alert("x1="+x1); 方法二:.innerHTML var x2 = document.getElementById("testid").innerHTML;
-
微信公众号网页授权登录的超简单实现步骤
目录 前言 一.微信公众号授权登录到底哪几步 二.回调地址,安全域名怎么配置 三.代码怎么写 四.出现问题怎么办 总结 前言 这篇文章带大家掌握 从0到1实现微信公众平台授权登录 微信公众号授权登录到底哪几步回调地址,安全域名怎么配置代码怎么写出了问题怎么办 一.微信公众号授权登录到底哪几步 官方文档介绍微信开放文档微信开发者平台文档https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_author
-
jquery的$getjson调用并获取远程的JSON字符串问题
代码如下: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equ
-
JavaScript实现的超简单计算器功能示例
本文实例讲述了JavaScript实现的超简单计算器功能.分享给大家供大家参考,具体如下: 先来看看运行效果: 具体代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>www.jb51.net JS计算器</title> <script type="text/javascript&qu
-
基于vue-cli、elementUI的Vue超简单入门小例子(推荐)
这个例子还是比较简单的,独立完成后,能大概知道vue是干嘛的,可以写个todoList的小例子. 开始写例子之前,先对环境的部署做点简单的介绍,其实和Vue官方的差不多. #如若没有安装过vue-cli,先全局安装一下vue-cli $ cnpm i -g vue-cli #到自己喜欢的目录下创建一个基于 webpack 模板的新项目 $ vue init webpack my-project # # #之后会有如下询问 ? Project name (my-project) #回车 ? Pro
-
PHP 图像处理与SESSION制作超简单验证码的方法示例
本文实例讲述了PHP 图像处理与SESSION制作超简单验证码的方法.分享给大家供大家参考,具体如下: 验证码的实现 首先我们要清楚,无论是做什么东西,在做之前一定要有思路,譬如这个验证码里他有些什么,为了实现它我们该做些什么,怎么样去做. 这里我例举出几个点. 1.验证码肯定要有内容. 2.验证码里肯定要有干扰信息,就譬如,线条干扰和点点干扰. 那么为了实现他们我们该如何做呢? 第一步,创建一个名为captcha.php的文件 在里面输入 <?php session_start();//开启会
随机推荐
- DB2获取当前用户表、字段、索引等详细信息
- 关于Vue背景图打包之后访问路径错误问题的解决
- PHP的Laravel框架结合MySQL与Redis数据库的使用部署
- asp 将日期格式化为需要的格式
- C#简单读取主机上所有进程的方法
- jsp网页搜索结果中实现选中一行使其高亮
- Node.js与Sails redis组件的使用教程
- SQL Server导入导出数据时最常见的一个错误解决方法
- WinForm中的登录实现
- C#使用oledb读取excel表格内容到datatable的方法
- 有笔记本必看的笔记本电脑充电等使用技巧
- jQuery+css实现百度百科的页面导航效果
- 一个支持ff的modaldialog的js代码
- js不是基础的基础
- struts2实现文件上传显示进度条效果
- C#实现在控制台输出当前系统时间的方法
- 向一个数组中插入一个1~100的随机数
- C#把整个文件内容读入字符串变量的方法
- JS中双击和单击事件冲突的解决方法
- 如何解决js函数防抖、节流出现的问题
