C# 的字符串处理
用户输入一个字符串,中英文不确定。
我要按一个中文占两位,一个英文占一位这种方式截取前十位。
比如用户输入6个中文,那么截取前五个;用户输入十二个英文则截取前十个;用户输入中英文混合例“我们aaabbbccc”,则截取的结果为:我们aaabbb,总之中文占2英文占1总数不大于10。
求该处理函数,多谢!
问题点数:50、回复次数:3Top
1 楼sskset(断点)回复于 2006-03-03 17:33:53 得分 16
如果出现的是
"aaabb我们" 那怎么取?Top
2 楼Lukiya(路基亚)回复于 2006-03-03 17:39:28 得分 16
参考
public static string CutString(string str, int length)
{
int i = 0, j = 0;
foreach (char chr in str)
{
if ((int)chr > 127)
{
i += 2;
}
else
{
i++;
}
if (i > length)
{
str = str.Substring(0, j) + "…";
break;
}
j++;
}
return str;
}Top
3 楼lovefootball(蟑螂(生活就是扯淡--做人要放低姿态))回复于 2006-03-03 17:49:32 得分 18
string temp = "我们aaabbb";
byte[] b = Encoding.GetEncoding("gb2312").GetBytes(temp);
这样你就可以操作byte了,中文两个byte英文一个byte
碰到一楼说的那种办法怎么办?自己考虑一下就可以了Top




