字符串截取固定长度的方法(C#)

字符串

这个函数也没有什么特别之处,就是可以截取一定长度的字符串,可能小特点就是len是字节,解决了汉字与英文字节不一样导致直接截取到的长
度不一样的问题,

#region 字符串截取函数
public static string CutString(string inputString,int len)
{

ASCIIEncoding ascii = new ASCIIEncoding();
int tempLen=0;
string tempString="";
byte[] s = ascii.GetBytes(inputString);
for(int i=0;i<s.Length;i++)
{
if((int)s[i]==63)
{
tempLen+=2;
}
else
{
tempLen+=1;
}

try
{
tempString+=inputString.Substring(i,1);
}
catch
{
break;
}

if(tempLen>len)
break;
}
//如果截过则加上半个省略号
byte[] mybyte=System.Text.Encoding.Default.GetBytes(inputString);
if(mybyte.Length>len)
tempString+="…";

return tempString;
}
#endregion

时间: 2024-09-19 09:14:58

字符串截取固定长度的方法(C#)的相关文章

js截取固定长度的中英文字符的简单实例_javascript技巧

js虽然提供了计算字符串所占字节数的函数,但是却不能正确计算汉字所占的字节数,如document.form1.username.value="我是中国人",document.form1.username.value.length返回的是5而不是10,于是给编程时带来一些麻烦,如限制固定长度字符的输入,截取固定长度的字符串都因为这个问题达不到预想的效果,下面是自己写的一个简单的函数,用于截取固定长度的字符串,中英文都适用.若有不妥之处还请高手指正! 复制代码 代码如下: //js截取字符

PHP 中文字符串截取无乱码的方法以及php汉字截取函数

昨天,在写代码时我遇到了一个中文字符串截取的问题,原本是想直接用substr()来,但这个是在单字节符下用的,对于多字节编码的汉字或是其它语言字符中,这个函数可能就用不上了,而且会容易截出乱码来!       现在就把我的下工作记录和总结给大家分享一下: 问题产生及使用案例网站:天气预报15天查询(http://tqybw.net) 问题时间:2013-10-31       解决思路:把汉字按一个汉字在编码下按其在完整性正则分割成数组,再根据需要取截取长度:       1.实现方法函数  

php mb_substr实现中文字符串截取无乱码的方法

注意:在windows目录下找到php.ini打开编辑,搜索mbstring.dll,找到 ;extension=php_mbstring.dll把前面的;号去掉,这样mb_substr函数就可以生效了 例子  代码如下 复制代码 <?php $str = '这样一来我的字符串就不会有乱码^_^'; echo "mb_substr:" . mb_substr($str, 0, 7, 'utf-8'); //结果:这样一来我的字 echo "<br>"

截取固定长度字符串显示在页面,多余部分显示为省略号(区分汉字和字符)

汉字|显示|页面|字符串|字符串 以下是代码,呵呵,比较简单,主要是区分汉字和字母,不然一个全是字母,一个全是汉字的两条记录排列在一起时会比较难看,全字符的长度只有全汉字 的一半就显示...号了     public static string stringformat(string str,int n)                {                        ///                        ///格式化字符串长度,超出部分显示省略号,区分汉字跟字母

sql substring()字符串截取函数的使用方法

SQL 中的 substring 函数是用来抓出一个栏位资料中的其中一部分.这个函数的名称在不同的资料库中不完全一样: MySQL: SUBSTR(), SUBSTRING() Oracle: SUBSTR() SQL Server: SUBSTRING() 最常用到的方式如下 (在这里我们用SUBSTR()为例): SUBSTR(str,pos): 由<str>中,选出所有从第<pos>位置开始的字元.请注意,这个语法不适用于SQL Server上. SUBSTR(str,pos

Windows系统时间如何转化为固定长度为8位的字符串

public string GetString(string data) { string DataFormat = string.Empty; if (data.Length == 10)//2014/11/23 { DataFormat = data.Replace("/", ""); } if (data.Length == 9)//2014/11/1或者2014/1/12 { //该函数是先截取再替换 if (data.Substring(4, 3).Rep

字符串处理:中英文混排固定长度截取问题

/// <summary>    /// 从包含中英文的字符串中截取固定长度的一段,strInput为传入字符串,intLen为截取长度(一个汉字占两个位).    /// </summary>    public string cutString(string strInput,int intLen)    {     strInput=strInput.Trim();     byte[] myByte = System.Text.Encoding.Default.GetByt

前后台实现精确截取指定长度字符串(考虑全角半角)

页面上很多显示新闻列表时,考虑面子问题,常常需要限制标题长度. 以前都是用 <%#Eval("title").ToString().Length > 10 ? Eval("title").ToString ().Substring(0, 8) + "..." : Eval("title").ToString()%> 这样的方式实现,这样代码即繁多又不能重用,不过这个还不是问题,因为可以在后台写个传字符串 和指

字符串截取函数开始

字符串截取函数开始        function csubStr($str,$start,$len)         {                 $strlen=strlen($str);                 $clen=0;                 for($i=0;$i<$strlen;$i++,$clen++)                 {                         if ($clen>=$start+$len)