截取字符串的长度(中英文)

} } return System.Text.Encoding.Unicode.GetString(list.ToArray()); } /// /// 要截取的字节数 /// ///输入的字符串 ///限定长度 ///是否需要省略号,true--需要,false--不需要 ///截取类型 ///截取后的字符串,如果是NVarchar--则20个字节就会有10个字符,Varchar--20个字节会有>=10个字符 public static string CutString(string value, int length, bool ellipsis, CutType cuttype) { value = value.Trim(); if (value.Length == 0) return string.Empty; if (cuttype == CutType.NVarchar) { if (value.Length > length / 2) { value = value.Substring(0, length / 2); if (ellipsis) return value + ".."; } } else { string resultString = string.Empty; byte[] myByte = System.Text.Encoding.GetEncoding("gbk").GetBytes(value); if (myByte.Length > length) { resultString = Encoding.GetEncoding("gbk").GetString(myByte, 0, length); string lastChar = resultString.Substring(resultString.Length - 1, 1); if (lastChar.Equals(value.Substring(resultString.Length - 1, 1))) { value = resultString; }//如果截取后最后一个字符与原始输入字符串中同一位置的字符相等,则表示截取完成 else//如果不相等,则减去一个字节再截取 { value = Encoding.GetEncoding("gbk").GetString(myByte, 0, length - 1); } if (ellipsis) return value + ".."; return value; } } return value; } #region 截短字串的函数,分区中英文 /// /// 截短字串的函数 /// ///要加工的字串 ///长度 /// 被加工过的字串 public static string Left(string mText, int byteCount) { if (byteCount < 1) return mText; if (System.Text.Encoding.Default.GetByteCount(mText) <= byteCount) { return mText; } else { byte[] txtBytes = System.Text.Encoding.Default.GetBytes(mText); byte[] newBytes = new byte[byteCount - 4]; for (int i = 0; i < byteCount - 4; i++) { newBytes[i] = txtBytes[i]; } string OutPut = System.Text.Encoding.Default.GetString(newBytes) + "..."; if (OutPut.EndsWith("?...") == true) { OutPut = OutPut.Substring(0, OutPut.Length - 4); OutPut += "..."; } return OutPut; } } #endregion } /// /// 截取字符枚举值,Varchar--英文一个字节,中文两个字节,NVarchar--无论中英文都是两个字节 /// public enum CutType { Varchar, NVarchar }

时间: 2024-10-13 06:02:11

截取字符串的长度(中英文)的相关文章

字符串-截取字符串指定长度+判断字符串是否可转化为数字

import org.apache.commons.lang3.StringUtils; /** * Created by weijun.nie on 2017/9/13. */ public class NiewjStringUtils { /** * 如果给定的字符串 targetString 大于 len 位, 则截取 len 位返回; 不大于,直接返回. * * @param targetString 给定的字符串 * @param len 指定的长度 * @return */ publ

一个截取字符串函数引发的思考

背景 前些天,遇到这样一个问题,问题的内容如下: 要求编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串.但是要保证汉字不被截半个,如"我ABC", 4,截取后的效果应该为"我AB",输入"我ABC汉DEF", 6,应该输出为"我ABC",而不是"我ABC+汉的半个". 问题 刚看到这个问题的时候,以为还是很简单的,但写出来之后,发现并不是想要的效果.回想一下当时的思路,就发现刚开

js常用的4种截取字符串方法

平常经常把这几个api的参数记混了,于是打算记录下来,当不确定的时候在拿出来翻翻: 在做项目的时候,经常会需要截取字符串,所以常用的方法有slice().substr().substring().match()方法等,四个方法的使用如下所示: 1 <script type="text/javascript"> 2 // 截取字符串的方法 3 //注意1.字符串的截取都是从左向右,不会有从右向左截取:2.slice与substring方法,截取返回的字符串包含numStart

数据库截取字符串函数

MySQL数据库和SQL Server数据库的字符串截取函数比较 MySQL字符串截取函数:SUBSTR(String string,num start,num length) string是原字符串, start是起始位置(从1开始), length是截取字符串的长度: SQL Server字符串截取函数:SUBSTRING(String string,num start,num length) string是原字符串, start是起始位置(从1开始), length是截取字符串的长度: 除

ASP如何计算中英文混合字符串长度和截取字符串

用ASP做网站的时候经常会碰到要截取字符串的情况.ASP中的Len函数不管是中文字符,还是英文字符,统统按一个单位来计算,由于一个中文字符的宽度是一个英文字符宽度的两倍,在中英文混合的情况下字符串实际占用的宽度就不好计算了,如果按照Len函数计算的长度来截取字符串截出来的效果也会长短不一,下面是按照一个汉字相当于两个英文字符来计算字符串长度和截取字符串的代码 计算中英文混合字符串的长度: [vb] view plaincopyprint? function getStringLen(str) o

获得字符串实际长度,中文2,英文1 js截取字符串,中英文都能用

var GetLength = function (str) { ///<summary>获得字符串实际长度,中文2,英文1</summary> ///<param name="str">要获得长度的字符串</param> var realLength = 0, len = str.length, charCode = -1; for (var i = 0; i < len; i++) { charCode = str.charCo

截取文本,区分中英文字符,中文算两个长度,英文算一个长度

/// <summary>    /// 截取文本,区分中英文字符,中文算两个长度,英文算一个长度   /// </summary>   /// <param name="str">待截取的字符串</param>   /// <param name="length">需计算长度的字符串</param>   /// <returns>string</returns>   p

无乱码截取字符串,中英文混合(转)

//无乱码截取字符串,中英文混合 function left($str, $len, $charset="utf-8"){ //如果截取长度小于等于0,则返回空 if( !is_numeric($len) or $len <= 0 ){ return ""; } //如果截取长度大于总字符串长度,则直接返回当前字符串 $sLen = strlen($str); if( $len >= $sLen ){ return $str; } if ( strtol

字符串操作 - 截取字符串长度代码段

提供一些项目中常用的字符串操作功能包括:截取字符串长度.输出转换.随机字符串.全角半角转换.字符集转换.邮箱格式验证.数字转文件大小. 截取字符串长度代码段: <span style="font-family:SimSun;font-size:12px;">/** * 截取长度 * @param unknown $str * @param number $start * @param unknown $length * @param string $charset * @p