c# 数字类文本怎么自动按格式转换
一个文本框 textbox
一个提交按钮 button
向数据库写入6位数字为一组的文本 间隔符号 .或; 都是英文半角状态下的输入字符
现在需要实现文本自动按格式转换
譬如 252863 253864 257888 268888.。。。。。。。。
都是6位数字为一组的文本 有时只要 252863 一组即可 有时252863 253864 257888 三组也行 手工输入也还行
但有时要输入 252863-252899之间连续共37组数字 手工输入不现实 只能252863-99 这样快捷输入 但进数据库时 还必须是37组独立的数字文本 而且有时 是连续几段 这样的数字组 怎么实现 他们在数据库里面 不论怎么输入 都是6个数字一组的数字文本? 间隔符是.或;
[解决办法]
我不太明白楼主什么意思
[解决办法]
用SPLIT(‘。’)函数可以试一下
[解决办法]
描述不清晰,未能了然。
[解决办法]
按我对楼主意思的理解,不知道下面的思路行不行呢?
检查数据格式,按不同的格式给予不同的处理
(1)单纯的数字格式:就直接传入DB
(2)数字间,有“间隔符号 .或;”的,就按间隔符号拆分后传入DB
(3)出现 - 的,先获取 - 后面数字的位数,假如是 252863-99,先获取 - 后面数字的长度,为2,然后获取 - 前数字的 前 4(总长度-后面数字的长度,即 6-2=4) 个数字。然后,使用一个循环,从 原数字的后2位,一直加到后数字的大小,即从 63~99.前4码使用原数字,后两码循环组出。然后将其传入DB
[解决办法]
var str = "252863 253864;257888 268888.252863-99";var list = new List<int>();var arr = str.Split(new char[] { ' ', '.', ';' }, StringSplitOptions.RemoveEmptyEntries);foreach (var item in arr){ if (item.Length > 6) { var m = int.Parse(item.Substring(0, 4) + item.Substring(7, 2)); for (int i = int.Parse(item.Substring(0, 6)); i <= m; i++) { list.Add(i); } } else { list.Add(int.Parse(item)); }}