我有一个macOS应用程序。我需要从任何www
中删除该方案和NSURL
部分。这就是我想出的:
// For testing purposes.
NSString *blogID = @"https://www.testing1234.tumblr.com";
// Create the corrected link string.
NSString *correctLink;
// Convert the string to a url.
NSURL *url = [NSURL URLWithString:blogID];
// Check if the url has a scheme.
if ([url scheme] != nil) {
correctLink = [url host];
} else {
correctLink = blogID;
}
// Ensure there are enough characters before
// performing the necessary 'www.' checks.
if ([correctLink length] > 4) {
// Remove the first instance of 'www.'
// from the blog url link string.
if ([[correctLink substringToIndex:4] containsString:@"www."]) {
correctLink = [correctLink substringFromIndex:4];
}
}
NSLog(@"correctLink: %@", correctLink);
我的问题是:如何可靠地删除字符串的www
部分?首先,www
的{{1}}变体不同,如www2
? NSURL
是否有任何方法可以让我检测字符串的www
部分? (就像我通过调用http://
来检测字符串的scheme
部分一样。
更新
我无法使用stringByReplacingOccurrencesOfString
,因为它会取代www
的所有次出现。因此,如果网址恰好是www.testsitewww.tumblr.com
,那么它将变为testsite.tumblr.com
。这不是我想要的,我只想删除第一次出现的www
(或任何其他变体,例如www2
)。
谢谢,Dan。
答案 0 :(得分:1)
@Supertecnoboff试试这种方式。 您可以将网址分隔为"。"你可以得到剩余的字符串。
- 如果www。或www2。或其他任何东西它会被"分开。"你可以得到剩下的字符串
NSString *blogID = @"https://www.testing1234.tumblr.com";
NSString *correctLink;
NSURL *url = [NSURL URLWithString:blogID];
if ([url scheme] != nil) {
correctLink = [url host];
} else {
correctLink = blogID;
}
NSArray *arr = [correctLink componentsSeparatedByString:@"."];
NSString *str = @"";
for(int i=1; i<arr.count; i++)
{
str = [str stringByAppendingString:[arr objectAtIndex:i]];
if(i != arr.count-1)
str = [str stringByAppendingString:@"."];
}
NSLog(@"correctLink: %@", str); //correctLink: testing1234.tumblr.com
答案 1 :(得分:0)
您可以替换部分文字:
NSString* url = [urlWithWWW stringByReplacingOccurrencesOfString:@"www." withString:@""];
答案 2 :(得分:0)
这样做
NSString *blogID = @"https://www.testing1234.tumblr.com";
[blogID stringByReplacingOccurrencesOfString:@"www" withString:@""];
//or
[blogID stringByReplacingOccurrencesOfString:@"www." withString:@""];
或
if([blogID hasPrefix:@"www"]) {
//do stuff
}