2015-07-21 73 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);