tnblog
首页

c#根据中文拆分字符串

16人阅读 2019/2/10 14:51 评论:0 收藏
分类: .NET


例如字符串 : net core使用EF之DB First

拆分后应该为:net core ,使用,EF,之,DB First


方法1:先找到字符串中的中文,然后根据中文在循环拆分字符串

  string key = "net core使用EF之DB First";

  //先找到所有的中文
  List<string> chs = new List<string>();
  Regex reg = new Regex("[\u4e00-\u9fa5]+");
  foreach (Match v in reg.Matches(key))
  chs.Add(v.Value);

  //然后根据中文来截取
  List<string> needstr = new List<string>();//存放截取后的
  for (int i = 0; i < chs.Count(); i++)
  {
     string item = chs[i];
     string[] substr = key.Split(item);
     if (!string.IsNullOrWhiteSpace(substr[0]))
     {
       needstr.Add(substr[0]);//存放一下前半部分
     }
     needstr.Add(item);//存放一下自己
     if (i == chs.Count - 1)//已经是最后一次了,直接放!
     {
       if (!string.IsNullOrWhiteSpace(substr[1]))
       {
         needstr.Add(substr[1]);
       }
     }
     else
     {
       key = substr[1];//把需要截取的变成后半部分,以便于用于在下一次截取
     }
  }

效果如下:


方法2:先找到字符串中的中文所在的位置,然后在根据中文位置循环拆分字符串

  string key = "net core使用EF之DB First";

            //先找到中文所在的位置
            List<int> chpois = new List<int>();
            char[] testbyte = key.ToArray();
            for (int i = 0; i < testbyte.Length; i++)
            {
                //找到中文所在的位置
                if (testbyte[i] >= 0x4E00 && testbyte[i] <= 0x9FA5)
                {
                    chpois.Add(i);
                }
            }
            //开始截取
            //.............





请先登录

{{item.title}}

{{item.content}}
不能简单的解决问题,那是设计与做法有问题
博主搜索
文章类别
CSS 5篇
云服务 2篇
Git 4篇
.NET 29篇
Android 0篇
软件架构 4篇
.NET Core 15篇
.NET MVC 3篇
英语 3篇
随笔 3篇
Bootstrap 1篇
Redis 12篇
编辑器 2篇
Js相关 6篇
Layui 2篇
Oracle 7篇
Python 2篇
数据库 2篇
EF 2篇
微信 2篇
前端 1篇
消息队列 1篇
最新文章
为什么要使用webapi而不直接使用controller
net core发布到IIS常见错误
net core依赖注入
NET CORE配置EF连接字符串
Net Core使用依赖注入来装载EF的上下文对象
下载net core
Sqlerver添加用户与授权
net core中使用url编码与解码操作
net core启动报错Unable to configure HTTPS endpoint. No server certificate was specified
.net core使用response
ef6动态添加条件
最新评价
{{item.ArticleTitle}}
{{item.BlogName}} : {{item.Content}}