2013-08-28 63 views
1

我有NSString,如@"05205"@"05931"左右。 我想刪除前導0個字符。用字符串中的空白字符替換「0」

E.g. @"05205" in @"5205"@"00072" in @"72"

我該如何在Objective-C中做到這一點?

+2

我想你的意思是說,你要刪除領先' 0「字符。 – rmaddy

+2

你有沒有試過看NSString doc? –

+0

你在哪裏得到這些?如果形成一個格式化操作,那麼你可以修復它。否則,NSString會記錄幾種不同的方法來刪除/空白字符。 –

回答

6

如果您將字符串轉換爲整數然後回到字符串,它將修剪前導零。

NSString *s = @"0072"; 
NSString *newString =[ NSString stringWithFormat:@"%d",[s integerValue]]; 
+3

+1巧妙的解決方案。即使可能效率較低,@ @ @@@ 0042「.integerValue).stringValue' –

+0

woooow答案是完美的! :D天才! – Loko

+1

我喜歡這個答案,但是我可能會使用像'%lld'和'[s longLongValue]'這樣的最廣泛的可用類型(或者如果他知道值總是正數,則是無符號的equiv) –

7

隨着NSStringCompareOptionsNSAnchoredSearch,搜索僅限於字符串的開頭,所以你可以使用stringByReplacingOccurrencesOfString:withString:options:range:這樣:

NSString* str= @"0072"; 
str= [str stringByReplacingOccurrencesOfString:@"0" 
            withString:@"" 
             options:NSAnchoredSearch 
             range:NSMakeRange(0, str.length)]; 
+2

這比rdelmar的巧妙的竅門更好,更一般的答案。 – rmaddy

+0

是的,真的很不錯。它基本上等同於<隨意插入函數式編程語言>中的'dropWhile'函數 –