2010-02-15 44 views
0

作爲標題。 我測試了NSScanner,但它傳遞了一些奇怪的字符串。 (例如:123aaa)。 有沒有什麼辦法將字符串< - >數字嚴格轉換?如何解析Cocoa中字符串表示的數值?

+0

什麼類型的數字?整型?浮點?什麼基地? – outis 2010-02-15 03:54:22

+0

這是NSInteger和浮動。我解決了通過查找點字符(「。」)來對它們進行分類。 – Eonil 2010-02-15 08:53:46

回答

1

你可以輕鬆地推出自己的。測試整個字符串是否被掃描,或者是否有其他字符。

NSScanner *scanner = [NSScanner localizedScannerWithString:str]; 
int i; 
if (![scanner scanInt:&i] || [scanner scanLocation] < [str length]) { 
    // str contains additional characters 
    ... 
} else { 
    // str contains only an int 
    ... 
} 
+0

謝謝。這可能工作。 – Eonil 2010-02-15 08:52:51

0

NSScanner不是那麼高級的。你必須自己驗證字符串。

一種方法是將字符掃描到一組數字,斷言失敗,然後掃描數字,然後scan to the end並斷言失敗。