2017-08-30 16 views
0

私はmacOSアプリケーションを持っています。私はスキームとwwwの部分をすべてNSURLから取り除く必要があります。これは私が出ているものです: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はありませんか? NSURLには文字列のwww部分を検出できる方法がありますか? (文字列のhttp://の部分をどのように検出できるかのように、schemeを呼び出してください)。

更新

それはwwwのすべて出現を置き換えますので、私はstringByReplacingOccurrencesOfStringを使用することはできません。したがって、URLがwww.testsitewww.tumblr.comの場合、testsite.tumblr.comになります。それは私が欲しいものではない、私はwww(またはwww2のような他の変種)の最初の出現を取り除きたいだけです。

ありがとう、Dan。

答えて

1

を行います。 「。」で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 
+0

@Supertecnoboffはコードを更新し、テストしました。これをチェックしてください。 –

+0

完璧に動作します。ありがとうございました! – Supertecnoboff

0

あなたは、テキストの元の部品を交換することができます

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

問題は、すべての「 '' www'''を置き換えることです。したがって、URLが '' 'www.testsitewww.tumblr.com''である場合、' 'testsite.tumblr.com''になります。それは私が望むものではなく、 '' 'www''(または' '' www2'''などの他の亜種)の最初の出現を取り除きたいだけです。 – Supertecnoboff

+0

begin - > [string hasPrefix:@ "www。"] - >サブストリング –

0

は、この方法を試してみてください@Supertecnoboffこの

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

または

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

を確認することができます。問題は、 '' 'www'''のすべての文字列を置き換えることです。したがって、URLが '' 'www.testsitewww.tumblr.com''である場合、' 'testsite.tumblr.com''になります。それは私が望むものではなく、 '' 'www''(または' '' www2'''などの他の亜種)の最初の出現を取り除きたいだけです。 – Supertecnoboff

+0

@Supertecnoboffまたは "。"に基づいて文字列を分割し、値を配列に渡すことができます。今度は配列をループし、必要に応じてすべてのインデックスの文字列を "WWW/WW2"と比較し、特定のインデックスの値が "WWW/WW2"と一致する場合は、そのインデックスデータを残して残りのインデックスデータを作成し、その値を文字列に追加します。このようにして、あなたの問題は解決されます。 – Prakash

+0

私の答えが得られない場合はもう一度聞かせてください – Prakash

関連する問題