C#中文和英文字符串长度问题
来源:互联网 发布:历年淘宝双十一销售额 编辑:程序博客网 时间:2024/05/06 05:21
/// <summary>
/// TrueStrLength 的摘要说明。
/*
在C#中字符串"中国人民zgrm"的Length=8,即一个汉字只占一个长度;
但有时候为了格式化输出的需要,我们期望得到字符串所占的字节长度,即
一个汉字占两个长度,"中国人民zgrm"的长度应该为12(=4个汉字*2+4个英文字符).
以下两个函数就用于解决这个问题.
*/
/// </summary>
public class TrueStrLength
{
public TrueStrLength()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
static public int trueLength(string str)
{
// str 字符串
// return 字符串的字节长度
int lenTotal = 0;
int n = str.Length;
string strWord = "";
int asc;
for(int i=0;i<n;i++)
{
strWord = str.Substring(i,1);
asc = Convert.ToChar(strWord);
if ( asc < 0 || asc > 127 )
lenTotal = lenTotal + 2;
else
lenTotal = lenTotal + 1;
}
return lenTotal;
}
static public string cutTrueLength(string strOriginal,int maxTrueLength,char chrPad,bool blnCutTail)
{
// strOriginal 原始字符串
// maxTrueLength 需要返回的字符串的字节长度
// chrPad 字符串不够时的填充字符
// blnCutTail 字符串的字节长度超过maxTrueLength时是否截断多余字符
// return 返回填充或截断后的字符串
string strNew = strOriginal;
if (strOriginal==null || maxTrueLength<=0)
{
strNew = "";
return strNew;
}
int trueLen = trueLength(strOriginal);
if (trueLen>maxTrueLength)//超过maxTrueLength
{
if (blnCutTail)//截断
{
for(int i=strOriginal.Length-1; i>0; i--)
{
strNew = strNew.Substring(0,i);
if (trueLength(strNew) == maxTrueLength)
break;
else if (trueLength(strNew) < maxTrueLength)
{
strNew += chrPad.ToString();
break;
}
}
}
}
else//填充
{
for(int i=0;i<maxTrueLength-trueLen;i++)
{
strNew += chrPad.ToString();
}
}
return strNew;
}
}
- C#中文和英文字符串长度问题
- C#获取中文英文混合字符串Byte字节长度
- 页面英文字符串和中文字符串的长度计算
- javascript计算中文和英文的长度问题
- 中文字符串长度问题:strlen和mb_strlen
- 校验中文长度和英文长度
- Java 中文字符串长度问题
- JS判断字符串长度的5个方法,并且区分中文和英文
- 【mysql 中文和英文长度】mysql 如何 计算中文和英文的长度
- MySQL 5.1中varchar类型中文和英文长度的问题
- sql计算字符串中包含中文、英文字符长度
- 用JavaScript截取一定长度字符串(中文长度为2,英文长度为1)
- C#计算字符串长度(中文两个字符)
- 提C#中截取长度中文字符串
- C# 按长度截取字符串(区别汉字,英文,数字)
- 一个中文汉字算两位,一个英文字母算一位,计算中文和英文混合的字符串长度。字符串:String str = "我不好java";
- 一个中文汉字算两位,一个英文字母算一位,计算中文和英文混合的字符串长度。字符串:String str = "我不好java";
- 取得英文字符和中文字符的长度
- Au3脚本函数用法中文说明
- JS漂浮广告(附详解) + 解决被flash等插件覆盖问题
- 专业相关
- TCP状态迁移,CLOSE_WAIT & FIN_WAIT2 的问题
- Struts的核心struts-config.xml配置文件
- C#中文和英文字符串长度问题
- fd_set
- 原来真可以10分钟开发USB驱动
- 客户区 非客户区
- Lucene in action 笔记 search篇
- writter test
- eclipse 与 weblogic及tomcat的无插件断点调试
- Linux系统新手学习的11点建议
- 编译VxWorks BSP出现的MMUCR_L4_ENABLE的问题