今天去面试,有一道上机题,长时间不写字符串方法,竟然没做出来,丢人了,晚上补上,记录一下,大家有更好的方法欢迎回复。 本人菜鸟,大神勿喷啊。
题目(凭记忆):写一个方法,请将任意字符串中的"<" ">"最近的之间的内容删除,并返回其余的字符串;例如:
NSString * str1 = @"<hdadsdtmlsssss></dqdqw>4<5<//dwdq><uioq>";
返回 4 <5;
NSString *str2 = @"<dwqdwqdq>abc<dwdwdw>de<dddd>";
返回 abcde;
防止误导读者,以下方法作废。
欢迎各位大神提供新算法(一定要加注释啊)···
我的解决方法:
- (NSString *)getEndStr:(NSString *)str
{
NSMutableString * mutStr = [[NSMutableString alloc]init];
NSArray *arr = [str componentsSeparatedByString:@">"];
for (int i = 0 ;i < arr.count; i ++) {
NSString * a = arr[i];
if (a.length > 0) {
if (![[a substringWithRange:NSMakeRange(0, 1)] isEqualToString:@"<"] ) {
for (NSInteger j =a.length ; j >0; j --) {
if ([[a substringWithRange:NSMakeRange(j - 1, 1)] isEqualToString:@"<"]) {
[mutStr appendString:[a substringToIndex:j - 1]];
break;
}
}
}
}
}
return mutStr;
}