2015-07-21 70 views
0

我有这个字符串: var string1 = numericUpDown2.Text; // 1改善代码字符串处理

总是要包含类似0001或为“11” = 0011

我用这个代码,使其4号:

private string Corection4(string variable) 
    { 
     var stringlen = variable.Length; 
     if (stringlen < 2) 
     { 
      string corectvariable = "000" + variable; 
      return corectvariable; 
     } 
     if (stringlen < 3) 
     { 
      string corectvariable = "00" + variable; 
      return corectvariable; 
     } 
     if (stringlen < 4) 
     { 
      string corectvariable = "0" + variable; 
      return corectvariable; 
     } 
     else 
     { 
      string corectvariable = variable; 
      return corectvariable; 
     } 
    } 

现在我需要一些帮助来改善这种代码

回答

2

您可以通过ToString()方法简单化。例如:

var correctVariable = variable.ToString("D4"); 

它会为您的字符串添加额外的零。

如果你对字符串的工作,首先分析它为int值:

var correctVariable = string.Format("{0:D4}", int.Parse(variable)); 
+0

感谢的提示,但现在我得到一个错误的“D4”的说法类型'字符串'不可分配给参数类型System.IFormatProvider – user3223293

+0

您应该首先将其解析为int值。看我的第二个例子 –

+0

为十六进制值不起作用 var value = Convert.ToInt16(numericUpDown3.Text); var hexOutput = string.Format(“{0:X}”,value); var reg = string.Format(“{0:D4}”,int.Parse(hexOutput)); //输出结果为:3E4 我想要03E4 我尝试 var reg = string.Format(“{0:D4}”,hexOutput); 但没有工作 – user3223293

0

您可以使用String.Format()

int number = 11; 
//D4 = pad with 0000 
string outputValue = String.Format("{0:D4}", number);