大家好,欢迎来到IT知识分享网。
遇到了一个需求,要把“12000.00001.00010.00032.00100” ; “00145.00002.12005.07042” ;“05439.07008.02070” 这样的编码转换成“12000.1.10.32.100” ; “145.2.12005.7042” ;“5439.7008.2070” 这样的形式。
分析
方法
根据思路,我们写出了方法:
public static string ChangeTheCode(string s) {
string result = ""; string[] sArray = s.Split('.');//通过“.”来拆分字符串 for (int j = 0; j < sArray.Count(); j++) {
string test = sArray[j]; if (!test.Contains("0"))//没有0则直接添加 {
result = result + "." + test; } else//有0则查找第一个非0的标签 {
for (int i = 0; i < test.Length; i++) {
string a = test.Substring(i, 1);//逐个判断是否是0 if (!a.Equals("0")) {
int index = i; result = result + "." + test.Remove(0, index); break; } } } } if (result.StartsWith("."))//如果开头有“.”,就把它去掉 {
result = result.Remove(0, 1); } return result; }
方法调用
class Program {
static void Main(string[] args) {
string s = "12000.00001.00010.00032.00100"; Console.WriteLine(ChangeTheCode(s)); string a = "00145.00002.12005.07042"; Console.WriteLine(ChangeTheCode(a)); string b = "05439.07008.02070"; Console.WriteLine(ChangeTheCode(b)); Console.ReadKey(); }
思考
另一种方法
根据网友weixin_ 提供的方法:
public static string ChangeTheCode2(string s) {
string result = ""; string[] sArray = s.Split('.'); for (int i = 0; i < sArray.Length; i++) {
result = result + "." + int.Parse(sArray[i]); } result = result.Trim('.'); return result; }
我们可以看到代码非常简洁,而且也能完美的实现需求(针对纯数字型的编码)。
再次感谢这位网友!!!
案例
看到这么多人需要,于是我写了个小程序,用来帮大家给编码补0或者去0,下面是程序界面(本人才疏学浅,设计比较简陋),源码的下载目录已经附上,用WPF写的,有需要的可以自取。
源码下载链接:https://download.csdn.net/download/weixin_46433786/14948165
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/132116.html