2011-08-03 58 views

回答

14

最簡單的正確的方法是:

int.Parse(s).ToString(); 

的裝飾方法都失敗了「0000」的投入,他們會返回一個空字符串,而不是正確的「0」。

+0

+1你是對的。我把它作爲字符串總是像0012,而不是0000.你不會從0000刪除前導零。除非你想它是0我猜。 – 2011-08-03 16:10:26

+1

這不適用於各種情況 - 字符串包含字母字符,是小數的字符串表示,或者是大於「Int32.MaxValue」的整數。 –

+0

@KirkBroadhurst:「前導零」是一個通常用於數字串的術語,並不包括零。此外,問題中的示例數據只有數字。 –

19

TrimStart看看:

​​

從MSDN:

的TrimStart方法從當前字符串中移除所有領先 字符是在trimChars參數。遇到不在trimChars中的字符時,修剪操作 停止。

+0

+1打我給它。 –

+1

+1比假設值爲整數的其他答案好得多;值可以是「0012ABC」或「00999999999999999999」,兩者都會失敗,並帶有「int.Parse」。 –

+0

考慮這個限制(不是關於主題,我知道) 只有在沒有指定任何修飾字符作爲參數的情況下,'System.String TrimStart(Char [])'僅在LINQ to Entities中受支持 –

2

如果總是使用int,你可以分析它:

abc = int.Parse(abc).ToString() 
1

var str = int.Parse(abc).ToString();應該做的,我認爲這項工作。將數字轉換爲int,然後將其轉換回字符串。

+0

我的投票在這裏,因爲它也適用於負數。在這種情況下使用TrimStart方法的解決方案將失敗。 –

+0

沒有負數..字符串 – nologo

+0

@nologo他意味着TrimStart方法不適用於像「-00123」這樣的字符串 –

1
var abc = "0023"; 
var zeroless = abc.TrimStart('0'); 

輸出: 「23」

+0

不是OP的主題,但對於那些因搜索而陷入困境的人,請考慮以下'TrimStart'限制: 當LINQ to Entities沒有指定任何修飾字符作爲參數時,System.String TrimStart(Char []) ' –

1
 string some_string = "000045"; 
     string ur_desire = int.Parse(some_string).ToString(); 
     Console.WriteLine(ur_desire); 

觸變九好答案我想是因爲它也有負數工程..