C#截取中英文混合字符串分行显示

private int GetStrByteLength(string str)

{

return System.Text.Encoding.Default.GetByteCount(str);

}

private string SubStrLenth(string str, int startIndex, int length)

{

int strlen = GetStrByteLength(str);

if (startIndex + 1 > strlen)

{

return "";

}

int j = 0;//记录遍历的字节数

int L = 0;//记录每次截取开始,遍历到开始的字节位,才开始记字节数

int strW = 0;//字符宽度

bool b = false;//当每次截取时,遍历到开始截取的位置才为true

string restr = string.Empty;

for (int i = 0; i < str.Length; i++)

{

char C = str[i];

if (ISChinese(C))

{

strW = 2;

}

else

{

strW = 1;

}

if ((L == length-1) && (L + strW > length))

{

b = false;

break;

}

if (j >= startIndex)

{

restr += C;

b = true;

}

j += strW;

if (b)

{

L += strW;

if (((L + 1) > length))

{

b = false;

break;

}

}

}

return restr;

}

时间: 2024-08-29 16:28:26

C#截取中英文混合字符串分行显示的相关文章

C#实现中英文混合字符串截取的方法

本文实例讲述了C#实现中英文混合字符串截取的方法,是C#字符串操作中非常常用的一个方法.分享给大家供大家参考之用.具体方法如下: 具体功能代码如下: /// <summary> /// 截取中英文混合字符串 /// </summary> /// <param name="text">字符文本</param> /// <param name="length">截取长度</param> /// &l

PHP获取中英文混合字符串的字数

function ccStrLen($str) #计算中英文混合字符串的长度 { $ccLen=0; $ascLen=strlen($str); $ind=0; $hasCC=ereg("[xA1-xFE]",$str); #判断是否有汉字 $hasAsc=ereg("[x01-xA0]",$str); #判断是否有ASCII字符 if($hasCC && !$hasAsc) #只有汉字的情况 return strlen($str)/2; if(!$

c#的中英文混合字符串截取

public class StringHelper     {         public static string GetSubString(string str, int len)         {             string result = string.Empty;// 最终返回的结果             int byteLen = System.Text.Encoding.Default.GetByteCount(str);// 单字节字符长度          

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

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

中英文混合字符串长度

得到中英文混合字符串长度 方法1 - (int)convertToInt:(NSString*)strtemp { int strlength = 0; char* p = (char*)[strtemp cStringUsingEncoding:NSUnicodeStringEncoding]; for (int i=0 ; i<[strtemp lengthOfBytesUsingEncoding:NSUnicodeStringEncoding] ;i++) { if (*p) { p++;

中英文混合字符串截取java

//截取字符串长度(中文2个字节,半个中文显示一个) public String subTextString(String str,int len){ if(str.length()<len/2)return str; int count = 0; StringBuffer sb = new StringBuffer(); String[] ss = str.split(""); for(int i=1;i<ss.length;i++){ count+=ss[i].getB

PHP截取中英文混合字符

////////////////////////////////////////////////////////////////////// PHP截取中英文及标点符号混合的字符串函数(绝对不会出现乱码)// 本程序在utf-8.gb2312中测试通过.使用者自行测试big5.// 函数 left( 源字符串, 截取指定的字符串个数, 编码(可省略,默认为utf-8) )///////////////////////////////////////////////////////////////

求中英文混合字符串长度,中英文混合字符串截取(汉字2个字节,字母数字等1个字节),字符转ASCII码

/// <summary> /// 求字符串的实际长度(汉字2个字节,外语字符1个字节) /// </summary> /// <param name="str"></param> /// <returns></returns> public static int Length(string str) { int len = 0; char[] arr = str.ToCharArray(); for (int i

字符串分行显示

$a="111111111111111111111110111111111111111111111111111111111111111011111111111111111101111111111111111111111111111111111111111111111111111111111111111111111111111101111" 字符串$a每8个字符为一行显示: 方法一:for($i=0;$i -lt $a.length;$i+=8){$a[$i..($i+7)] -join