在第一个正斜杠之前删除字符串的一部分
Remove part of a string before the first forward slash
我有一个字符串
NSString *str = @"xyz/en/ABOUT/hello";
我需要删除第一个斜线之前的所有字符。
我的输出应该是这样的:
"/en/ABOUT/hello"
但我不能简单地替换@"xyz"
,因为第一个斜线之前的内容是动态的。
首先拆分字符串:
NSArray *array1 = [str componentsSeparatedByString:@"/"]
然后加入字符串:
NSString *joinedString = [[array1 subarrayWithRange:NSMakeRange(1, [array1 count] - 1)] componentsJoinedByString:@"/"];
添加第一个'/'
回来
joinedString = [@"/" stringByAppendingString:joinedString]
应该有一种 regex 方法可以做到这一点,但除非必须,否则很少使用它。
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
Swift3
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
您似乎正在使用文件路径。所以,使用路径操作方法:
@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
。
我有一个字符串
NSString *str = @"xyz/en/ABOUT/hello";
我需要删除第一个斜线之前的所有字符。
我的输出应该是这样的:
"/en/ABOUT/hello"
但我不能简单地替换@"xyz"
,因为第一个斜线之前的内容是动态的。
首先拆分字符串:
NSArray *array1 = [str componentsSeparatedByString:@"/"]
然后加入字符串:
NSString *joinedString = [[array1 subarrayWithRange:NSMakeRange(1, [array1 count] - 1)] componentsJoinedByString:@"/"];
添加第一个'/'
回来
joinedString = [@"/" stringByAppendingString:joinedString]
应该有一种 regex 方法可以做到这一点,但除非必须,否则很少使用它。
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
Swift3
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
您似乎正在使用文件路径。所以,使用路径操作方法:
@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
。