从NSMutableString中删除前面的字符

时间:2014-05-13 06:26:59

标签: objective-c nsmutablestring

我正在尝试删除NSMutableString的正面字符并尝试过:

    [str setString: [str substringFromIndex:1]] ,
    [str deleteCharactersInRange:NSMakeRange(0,1)] 

和其他一些人。除了我要删除的那个字符之外,这两个字符要么删除每个字符或每个字符,例如,如果我有字符串“ - 2357”并且我正在尝试删除“ - ”< / em>然后当我得到“2357”时,我得到“ - ”。

我做错了什么,我该如何解决这个问题?

3 个答案:

答案 0 :(得分:3)

如果您想使用deleteCharactersInRange方法,请执行此操作

NSRange range = {0,1};
[str deleteCharactersInRange:range];

或者,你可以这样使用substringFromIndex

str = [str substringFromIndex:1];

<小时/> 与你所说的相反,[str deleteCharactersInRange:NSMakeRange(0,1)]应该可以正常工作,我不知道为什么这不起作用。

[str substringToIndex:1]将字符串从开头返回索引1,即-。你想要的是substringFromIndex。并且当此方法返回NSString时,您需要将其分配给str;只是在str上调用方法是不够的。


修改

使用deleteCharactersInRange可能会对某些类型的字符造成问题。有关详细信息,请参阅此问题 here

相反,您可以安全地使用

[str deleteCharactersInRange:[str rangeOfComposedCharacterSequenceAtIndex:0]]

答案 1 :(得分:2)

而不是:

[str substringToIndex:1]

这样做:

[str substringFromIndex:1]

答案 2 :(得分:1)

如果要删除字符串的第一个字符,可以使用: -

string = [string substringFromIndex:1];