删除第一个正斜杠之前的字符串部分



我有一个字符串

NSString *str = @"xyz/en/ABOUT/hello";

我需要删除第一个斜杠之前的所有字符。

我的输出应该是这样的:

"/en/ABOUT/hello"

但我不能简单地替换@"xyz",因为第一个斜杠之前的内容是动态的。

Objective-C

NSString *str = @"xyz/en/ABOUT/hello";
NSUInteger index = [str rangeOfString:@"/"].location;
NSString *myString = [str substringFromIndex:index];
NSLog(@"final string: %@", myString);    // final string:  /en/ABOUT/hello

雨燕3

let str = "xyz/en/ABOUT/hello"
let index = str.range(of: "/")?.lowerBound
let myString: String? = str.substring(from: index!)
print("final string: ", myString!)   // final string:  /en/ABOUT/hello

首先拆分字符串:

NSArray *array1 = [str componentsSeparatedByString:@"/"]

然后连接字符串:

NSString *joinedString = [[array1 subarrayWithRange:NSMakeRange(1, [array1 count] - 1)] componentsJoinedByString:@"/"];

重新添加第一个'/'

joinedString = [@"/" stringByAppendingString:joinedString]

应该有一种正则表达式方法来做到这一点,但除非必须这样做,否则很少使用它。

看起来您正在使用文件路径。因此,请使用路径操作方法:

@implementation NSString (MorePaths)
- (NSString *)WSSDroppingFirstRelativePathComponent
{
    NSArray * trailingComponents = [[self pathComponents] WSSDroppingFirst];
    return [NSString pathWithComponents:trailingComponents];
}
@end
@implementation NSArray (Dropping)
- (NSArray *)WSSDroppingFirst
{
    NSRange trailingRange = NSMakeRange(1, [self count] - 1);
    return [self subarrayWithRange:trailingRange];
}
@end

如果这实际上是一个 URL,请将类别放在 NSURL 上而不是 NSString 上。

相关内容

  • 没有找到相关文章

最新更新