ris*_*shi 0 xcode substring objective-c nsstring ios
我动态追加并从NSString中删除子串 -
在特定的操作我附加使用(我在添加新字符串时使用逗号分隔符) -
self.selectedString = [self.selectedString length] < 1 ? newSelectedString
: [self.selectedString stringByAppendingFormat:@",%@",newSelectedString];
Run Code Online (Sandbox Code Playgroud)
删除 - 现在这个逗号在删除字符串时为我创建了问题.目前我使用的解决方案是 -
self.selectedString = [self.selectedString stringByReplacingOccurrencesOfString:newSelectedString
withString:@""];
NSRange rangeSingleComma = [self.selectedString rangeOfString:@","];
NSRange rangeDoubleComma = [self.selectedString rangeOfString:@",,"];
if (rangeSingleComma.location == [self.selectedString length] - 1) {
self.selectedString = [self.selectedString substringToIndex:[self.selectedString length] - 1];
}
if (rangeSingleComma.location == 0) {
self.selectedString = [self.selectedString substringFromIndex:1];
}
if (rangeDoubleComma.location != NSNotFound) {
self.selectedString = [self.selectedString stringByReplacingOccurrencesOfString:@",,"
withString:@","];
}
Run Code Online (Sandbox Code Playgroud)
但这是一个非常肮脏的方法,任何人都可以提出一个很好的方法.
你可以这样做
NSString *str = @"aaa,bbb,ccc";
NSMutableArray *arr = [[str componentsSeparatedByString:@","] mutableCopy];
int indexToRemove = -1;
for (int i = 0; i < arr.count; i++) {
NSString *string = [arr objectAtIndex:i];
if([string isEqualToString:@"aaa"])
{
indexToRemove = i;
break;
}
}
if(indexToRemove != -1)
{
[arr removeObjectAtIndex:indexToRemove];
}
NSString *newString = [arr componentsJoinedByString:@","];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1441 次 |
| 最近记录: |