2025年编码去0的方法(C)

编码去0的方法(C)遇到了一个需求 要把 12000 00001 00010 00032 00100 00145 00002 12005 07042 05439 07008 02070 这样的编码转换成 12000 1 10 32 100 145 2 12005 7042 5439 7008 2070 这样的形式

大家好,我是讯享网,很高兴认识大家。

遇到了一个需求,要把“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_/

小讯
上一篇 2025-03-28 17:13
下一篇 2025-03-07 11:25

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/48566.html