String.Split()删除前导零

时间:2012-11-20 09:59:07

标签: c# .net string split

我正在尝试拆分当前的应用程序版本号,但删除了前导零。

如何更改分割以不删除前导零。

获取currentVersionNo:

startUpAssembly.GetName().Version.ToString()

所以测试:

string versionNo = "7.01.7000.0";

string[] versionInfo = versionNo.Split('.');

这会产生:

7
1 //Here i need it to be 01
7000
0

我需要它不要删除前导零。我如何实现这一目标?

使用正则表达式可能有更好的解决方案吗?

1 个答案:

答案 0 :(得分:20)

System.Version不是任意字符串 - 它是四个整数。前导零是无关紧要的,因此在转换回字符串时不包括在内。那是您丢失信息的地方 - 而不是String.Split。你可以很容易地看到这一点:

using System;

class Test
{
    static void Main()
    {
        Version version = new Version("7.01.7000.0");
        Console.WriteLine(version); // 7.1.7000.0
    }
}

基本上,您的计划存在根本缺陷,您应该更改设计。你不应该尝试代表" 7.01.7000.0"的版本。开头。

此外,您应退后一步,考虑一下您的诊断程序:是什么让您认为String.Split应该归咎于此?为什么不是第一步看startUpAssembly.GetName().Version.ToString()的结果?