2017-01-06 6 views
0

文字列に影響を与えることなく、括弧の間の空白を削除するには:どのように私はこのようになります文字列を持っている

私は括弧を削除したい

TEST STRING 

)括弧間の空白は削除されますが、文字列内の空白は削除されません。

基本的には、文字列が必要です。私はトリミングと交換を検討しましたが、私は彼らがここに応募したとは思いません。

この問題の解決方法についてのヒントはありますか?

おかげ

+0

彼らはここに適用されます。いくつかのコードを表示します。要件をより明確に定義することができます。 –

+0

'TEST STRING'が二重引用符で囲まれていると、フォーマットが古いNextStepフォーマット(Terminal.appの配列や辞書の表示に使用されています)と一致するため、' NSPropertyListSerialization'で文字列を簡単に抽出できます。 – vadian

答えて

1

これは動作するはずです:

NSString *originalString = @"(TEST STRING)"; 
NSString *newString = [originalString stringByReplacingOccurrencesOfString:@"(" withString:@""]; 
newString = [newString stringByReplacingOccurrencesOfString:@")" withString:@""]; 
+0

/agree ...常に空間があることが分かっている限り、彼のソリューションは読みやすくなります。 –

1

Iだろう(NSRegularExpressionSearch | NSAnchoredSearch)使用することを検討して、このような 何かを(私はその場でコードを書いているそのので、おそらく正しくない

NSRange rng = [myString rangeOfString:@"([ \t\n\r]*" options:(NSRegularExpressionSearch | NSAnchoredSearch)]; 
    NSRange rng = [myString rangeOfString:@"[ \t\n\r]*)" options:(NSRegularExpressionSearch | NSAnchoredSearch | NSBackWardsSearch)]; 
    if (rng.length && rng2.length) 
    { 
    myString = [myString substringToIndex:rng2.location]; 
    myString = [myString substringFromIndex:rng.location]; 
    } 
1

string = [string stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"()"]]; 

そして空白をトリミングします。当然の

string = [string stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; 
0
NSCharacterSet *unwantedChar = [NSCharacterSet characterSetWithCharactersInString:@" "@"\"-[}()\n "]; 
NSString *requiredString = [[string componentsSeparatedByCharactersInSet:unwantedChar] componentsJoinedByString: @""]; 
+0

このコードは問題を解決するかもしれませんが、説明を追加すると、それがなぜ/どのように動作するかを理解するのに役立ちます。 – BDL

+0

私はここに必要な説明がないと思います。この行を見ると、それがどのように機能するのかわかります。 –

関連する問題