我正在尝试删除NSMutableString
的正面字符并尝试过:
[str setString: [str substringFromIndex:1]] ,
[str deleteCharactersInRange:NSMakeRange(0,1)]
和其他一些人。除了我要删除的那个字符之外,这两个字符要么删除每个字符或每个字符,例如,如果我有字符串“ - 2357”并且我正在尝试删除“ - ”< / em>然后当我得到“2357”时,我得到“ - ”。
我做错了什么,我该如何解决这个问题?
答案 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];