2011-03-14 23 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由代码单元索引,表情符号需要两个代码单元。

请确保自己检查索引。

相关问题