2011-03-14 24 views

回答

246
mystr=[mystr substringToIndex:3]; 

請確保您的字符串至少有3個字母o.e.它會使應用程序崩潰。

這裏有一些其他的鏈接檢查NSsting操作...

Link1

Link2

Apple Link

+20

注:「範圍或索引越界」的錯誤可能的,如果你不檢查的長度,以確保它有3個或更多字符長 – 2012-03-29 04:01:58

+0

我很新的,我搜索了這個問題,試圖回答我自己的,但不會回答出前3個字符嗎?我使用相同的語法來刪除您設置的字符數。我可能是錯的,但我認爲我至少應該問。 – 2014-04-16 15:23:22

+0

@RyanBavetta如果你與這樣的字符串,例如你的代碼早期階段作出,所以你知道它到底有多少個字符有一個日期字符串。那麼可以肯定你不需要使用if語句懶得檢查它有多長,右? – Supertecnoboff 2015-02-27 07:12:54

59

首先,你必須確保該字符串中包含至少3字符:

NSString *fullString = /* obtain from somewhere */; 
NSString *prefix = nil; 

if ([fullString length] >= 3) 
    prefix = [fullString substringToIndex:3]; 
else 
    prefix = fullString; 

substringToIndex:將拋出異常,如果您提供的索引超出字符串的末尾。

+5

或者,在一個包裹@嘗試/ @ catch塊。儘管如此,這是比其他更好的答案。 – 2011-03-14 04:28:41

+0

有用和完美的工作,謝謝 – Logic 2015-05-18 07:33:48

2

以正確的方式是:

text = [text substringToIndex:NSMaxRange([text rangeOfComposedCharacterSequenceAtIndex:2])]; 

的NSString的substringToIndex由代碼單元索引,表情符號需要兩個代碼單元。

請確保自己檢查索引。

相關問題