在 NSURL 中检测并删除 'www'

Detect & remove 'www' in NSURL

我有一个 macOS 应用程序。我需要从任何 NSURL 中删除方案和 www 部分。这是我想出的:

// 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 的不同变体,例如 www2NSURL 是否有任何方法可以让我检测字符串的 www 部分? (就像我如何通过调用 scheme 来检测字符串的 http:// 部分一样)。

更新

我不能使用 stringByReplacingOccurrencesOfString,因为它会替换 所有 次出现的 www。所以如果 url 恰好是 www.testsitewww.tumblr.com 那么它将变成 testsite.tumblr.com。这不是我想要的,我只想删除第一次出现的 www(或任何其他变体,例如 www2)。

谢谢,丹。

您可以替换部分文本例如:

NSString* url = [urlWithWWW stringByReplacingOccurrencesOfString:@"www." withString:@""];

这样做

NSString *blogID = @"https://www.testing1234.tumblr.com";
[blogID stringByReplacingOccurrencesOfString:@"www" withString:@""];
//or
[blogID stringByReplacingOccurrencesOfString:@"www." withString:@""];

 if([blogID hasPrefix:@"www"]) {
//do stuff
 }

@Supertecnoboff 试试这个方法。 您可以用“.”分隔 url你可以获得剩余的字符串。

- 如果 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