/**/
///str_value 字符
///str_len 要截取的字符长度
public string leftx( string str_value, int str_len)
{
int p_num = 0;
int i;
string New_Str_value = "";
if (str_value=="")
{
New_Str_value = "";
}
else
{
int Len_Num = str_value.Length;
//if (Len_Num < str_len)
//{
// str_len = Len_Num;
//}
for (i = 0;i<=Len_Num - 1; i++)
{
//str_value.Substring(i,1);
if (i >Len_Num) break;
char c = Convert.ToChar(str_value.Substring(i,1));
if (((int)c > 255) || ((int)c<0))
{
p_num = p_num + 2;
}
else
{
p_num = p_num + 1;
}
if (p_num >= str_len)
{
New_Str_value = str_value.Substring(0,i+1);
break;
}
else
{
New_Str_value = str_value;
}
}
}
return New_Str_value;
}
///str_len 要截取的字符长度
public string leftx( string str_value, int str_len)
{
int p_num = 0;
int i;
string New_Str_value = "";
if (str_value=="")
{
New_Str_value = "";
}
else
{
int Len_Num = str_value.Length;
//if (Len_Num < str_len)
//{
// str_len = Len_Num;
//}
for (i = 0;i<=Len_Num - 1; i++)
{
//str_value.Substring(i,1);
if (i >Len_Num) break;
char c = Convert.ToChar(str_value.Substring(i,1));
if (((int)c > 255) || ((int)c<0))
{
p_num = p_num + 2;
}
else
{
p_num = p_num + 1;
}
if (p_num >= str_len)
{
New_Str_value = str_value.Substring(0,i+1);
break;
}
else
{
New_Str_value = str_value;
}
}
}
return New_Str_value;
}
C#截取中英文混合字符串
注意:需要引用正则名字空间,using System.Text.RegularExpressions;
调用方法:
CnCutString(ArtTitle, 24, "..");
/**/
/// <summary>
/// 截取中英文混合字符串
/// </summary>
/// <param name="original">原始字符串</param>
/// <param name="length">截取长度</param>
/// <param name="fill">截取串小于原始串时,尾部附加字符串</param>
/// <returns></returns>
public static String CnCutString(String original, Int32 length, String fill)
{
Regex CnRegex = new Regex("[\u4e00-\u9fa5]+", RegexOptions.Compiled);
Char[] CharArray = original.ToCharArray();
Int32 tmplength = 0;
for (Int32 i = 0; i < CharArray.Length; i++)
{
tmplength += CnRegex.IsMatch(CharArray[i].ToString()) ? 2 : 1;
if (tmplength > length) return original.Substring(0, i - fill.Length) + fill;
}
return original;
}
/// 截取中英文混合字符串
/// </summary>
/// <param name="original">原始字符串</param>
/// <param name="length">截取长度</param>
/// <param name="fill">截取串小于原始串时,尾部附加字符串</param>
/// <returns></returns>
public static String CnCutString(String original, Int32 length, String fill)
{
Regex CnRegex = new Regex("[\u4e00-\u9fa5]+", RegexOptions.Compiled);
Char[] CharArray = original.ToCharArray();
Int32 tmplength = 0;
for (Int32 i = 0; i < CharArray.Length; i++)
{
tmplength += CnRegex.IsMatch(CharArray[i].ToString()) ? 2 : 1;
if (tmplength > length) return original.Substring(0, i - fill.Length) + fill;
}
return original;
}