收录日期:2020/10/25 07:48:45 时间:2016/07/04 16:42:18 标签:ASP.NET
编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是要保证汉字不被截半个,如输入“我是M土N木”和8,应该截为“我是”,如输入“我是M的N木”和6,应该输出为“我是M”而不是“我是M”+“的”的半边。
private static string SubString(string stringToSub, int length) {
            Regex regex = new Regex("[\u4e00-\u9fa5]+", RegexOptions.Compiled);
            char[] stringChar = stringToSub.ToCharArray();
            StringBuilder sb = new StringBuilder();
            int nLength = 0;

            for(int i = 0; i < stringChar.Length; i++) {
                if (regex.IsMatch((stringChar[i]).ToString())) {
                    sb.Append(stringChar[i]);
                    nLength += 2;
                }
                else {
                    sb.Append(stringChar[i]);
                    nLength = nLength + 1;
                }

                if (nLength > length)
                    break;
            }

            return sb.ToString();
        } 
public static string Substring(string sourceString, int length)
{
int length1 = 0;
int length2 = 0;
char[] chars = sourceString.ToCharArray();

for(int i = 0; i < chars.Length; i++)
{
byte[] bytes = Encoding.Default.GetBytes(chars, i, 1);
length1 += bytes.Length;
length2 = i + 1;

if(length1 == length)
{
break;
}
else if(length1 > length)
{
length2 += -1;
break;
}
}

return sourceString.Substring(0, length2);
}

谈谈高性能服务器框架 对外部程序后台模拟鼠标双击是否无解? [已回复]我的博客上数据有点混乱,请管理员处理一下,谢谢。 选项卡属性设置了怎么没置底? 数据库分页 程序员35岁后,怎么办? 想问下这个数据库怎么连接的 还有下面COMMAND什么意思 Silverlight 做 SOCKET通信时,可否将策略文件放服务器里呀? 【求助】关于格式化字符串 我想安装VIM,版本是ubuntu的。但是显示的是被其他的软件包引用。 asp.net中上传图片时提示:对路径“xxx”的访问被拒绝。 spring2.5以上版本如何用自动扫描注解方式注册struts2的action [已处理]我的博客进不去了,管理员帮忙解决一下 vs2010单文档程序如何使用datagrid控件 大侠帮帮忙来看看我的这个纠结的vc课设!!!!绝对让人头疼!! [在线等]请问unix下oracle权限问题 c# 2010 通过Form1下拉框换掉Form2的背景颜色 [在线等]请问unix下oracle权限问题 求救,局域网内ip连接不上ftp服务器,直接拨号就可以连接 求解决多列名次问题 centos 5.6无线网卡驱动装不上 关于spring bean 作用范围 C语言链表数据域的问题,求解! 【幺幺】 嘿嘿,今天是散粉滴好日子! 幺幺,我系刀刀! 求解非时段排除PHP代码,急急急 svc配置文件 spring2.5以上版本如何用自动扫描注解方式注册struts2的action APK权限的问题 1万可用分,大家要多少我就散多少(七) 一道编程 我不会啊 谁能帮帮我啊。。。。。。