求用C#,按固定字符长度【中文要计2个】,拆分字符成List。如将字符【712中国人,TSDTS我ES】,每隔4位分割。结果为{"712","中国","人,","TSDT","S我","ES"} 解释:前面3位是因为第4个字符是中文的一半,只能取3位。很头痛,麻烦帮忙。
6条回答 默认 最新
关注 using System; using System.Collections.Generic; class Program { static void Main(string[] args) { string str = "712中国人,TSDTS我ES"; int maxLength = 4; List<string> result = SplitString(str, maxLength); foreach (string s in result) { Console.WriteLine(s); } } static List<string> SplitString(string str, int maxLength) { List<string> result = new List<string>(); int length = 0; string temp = ""; foreach (char c in str) { length += GetCharLength(c); if (length <= maxLength) { temp += c; } else { result.Add(temp); temp = c.ToString(); length = GetCharLength(c); } } if (!string.IsNullOrEmpty(temp)) { result.Add(temp); } return result; } static int GetCharLength(char c) { int length = 0; if (c > 127) { length = 2; } else { length = 1; } return length; } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 平板录音机录音问题解决
- ¥15 请问维特智能的安卓APP在手机上存储传感器数据后,如何找到它的存储路径?
- ¥15 (SQL语句|查询结果翻了4倍)
- ¥15 Odoo17操作下面代码的模块时出现没有'读取'来访问
- ¥50 .net core 并发调用接口问题
- ¥15 网上各种方法试过了,pip还是无法使用
- ¥15 用verilog实现tanh函数和softplus函数
- ¥15 Hadoop集群部署启动Hadoop时碰到问题
- ¥15 求京东批量付款能替代天诚
- ¥15 slaris 系统断电后,重新开机后一直自动重启