2013-10-09 68 views
2

我有一個長度爲4的char數組。我試圖創建一個方法將1添加到此char數組併產生一個字符串「0002」。添加1到0001 vb.net

我可以將字符數組轉換爲整數,以便爲其添加1,但問題是我正在丟失過程中的前導零。有沒有辦法在添加中保留零點?

我要一些輸出的例子.. 如果endCode是 「0009」 和我加1,我想 「0010」 如果endCode是 「0999」 和我加1,我想 「1000」

我失去了零點我目前的代碼..

(Convert.ToInt32(New String(endCode)) + j).ToString 

回答

9

你是如此接近。只有5個字符短。你只需要一個格式字符串:

(Convert.ToInt32(New String(endCode)) + j).ToString("D4") 

雖然人們不禁要問,爲什麼還是這個數據是怎麼來的擺在首位的字符數組。

+0

全能的ToString!我傾向於忘記它可以做的事情。這是[對MSDN的引用](http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx)。 +1 – Neolisk

+0

我從A0001AB或0001C或其他字母數字變體開始,我必須比較一個比另一個更大的數字。所以我將字符串轉換爲char數組,並在保留它們在起始字符串中的位置的同時剪切掉任何字母字符。有沒有更好的辦法?有可能是 –

+0

也許:我在想正則表達式。這是一個值得提問的問題。 –

5

有一種方式來獲得零回:

Dim s As String = "0001" 
Dim i As Integer = 1 
Console.WriteLine(CStr(CInt(s) + i).PadLeft(4, "0"c)) 'outputs 0002 
1

邊緣情況如何?我不認爲D4會爲此工作。

Dim encode As String = "9999" 
    Dim encint As Integer = Integer.Parse(encode) + 1 
    encode = encint.ToString("00000").Substring(1, 4) 
+0

從MSDN,D格式說明符設置要顯示的最小字符數。如果小於這個數字,則填充零。這工作:'編碼= encint.ToString(「D4」)'輸出10000'參考:[十進制(「D」)格式說明符](http://msdn.microsoft.com/en-us/library/dwhawy9k。 ASPX#DFormatString)。 – Neolisk

+0

我認爲OP的長度必須是4.難以像往常一樣猜測。也許OP會澄清。 – dbasnett