博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
字符串尾号数字自增长
阅读量:5023 次
发布时间:2019-06-12

本文共 2062 字,大约阅读时间需要 6 分钟。

最近在做一个条码打印的程序,要求箱号个数根据打印的数量自增长;箱号个格式为字符串尾号为数字。

分析:

  1. 首先根据箱号格式,将非数字字符部分和数字字符部分分隔;
  2. 其次将数字字符部分转换为数字型,进行运算;转换前记录数字字符长度;
  3. 再次自增后的数字长度与原来分隔数字型字符进行比较,自增后数字长度不够时,首个开始用0填充;
  4. 最后将原有的非数字字符部分和自增后组成的数字字符部分进行拼接得到结果。

缺陷:

  1. 对数字字符长度部分有所限制,字符串转成数字型较容易出错;

具体实现代码如下:

1  private void btnCalc_Click(object sender, EventArgs e) 2         { 3             string input = txtStr.Text.Trim(); 4             int addxs = Convert.ToInt32(txtXS.Text.Trim()); 5  6             //数字的字符索引 7             int strartNo = 0; 8             //固定字符部分 9             string gdzf = string.Empty;10             //可变列字符部分11             string kbsz = string.Empty;12 13             for (int i = 0; i < input.Length; i++)14             {15                 //判断是否为数字类型16                 if (58 > input[i] && input[i] > 47)17                 {18                     strartNo = i;19                     break;20                 }21             }22 23             //固定列赋值24             gdzf = input.Substring(0, strartNo);25             //可变列赋值26             kbsz = input.Substring(strartNo, input.Length - strartNo);27 28             //可变列长度29             int kbcd = kbsz.Length;30 31             int chsz = 0;32             try33             {34                 chsz = Convert.ToInt32(kbsz);35             }36             catch (Exception)37             {38                 txtResult.Text = "格式错误";39             }40 41             chsz = chsz + addxs;42 43             //比较原有数字字符长度与自增后的字符长度44             if (chsz.ToString().Length < kbcd)45             {46                 //补零个数47                 int blgs = kbcd - chsz.ToString().Length;48                 string zero = string.Empty;49                 for (int i = 0; i < blgs; i++)50                 {51                     zero = zero + "0";52                 }53 54                 kbsz = zero + chsz;55             }56             else57             {58                 kbsz = chsz.ToString();59             }60 61             txtResult.Text = gdzf + kbsz;62         }

测试结果如下:

     

总结:

  • 上述是个人写的算法,由于存在部分限制,如有更好的算法,望大神指点。

转载于:https://www.cnblogs.com/tuqun/p/4048857.html

你可能感兴趣的文章
windos7修复引导扇区
查看>>
Leetcode总结之Backtracking
查看>>
Android开发学习之路-图片颜色获取器开发(1)
查看>>
StackExchange.Redis 官方文档(一) Basics
查看>>
nupkg 之破解 nodejs+electron-packager 打包exe的解包
查看>>
Objective-C 使用 C++类
查看>>
浅谈之高级查询over(partition by)
查看>>
Notes: CRM Analytics–BI from a CRM perspective (2)
查看>>
graphite custom functions
查看>>
列出所有的属性键
查看>>
js获取请求地址后面带的参数
查看>>
[原创]使用java批量修改文件编码(ANSI-->UTF-8)
查看>>
设计模式のCompositePattern(组合模式)----结构模式
查看>>
二进制集合枚举子集
查看>>
磁盘管理
查看>>
SAS学习经验总结分享:篇二—input语句
查看>>
UIImage与UIColor互转
查看>>
RotateAnimation详解
查看>>
系统管理玩玩Windows Azure
查看>>
c#匿名方法
查看>>