0

こんにちは、objective-c の初心者です。このような nsstring があります。

Select *  from Store_Master where AND  VDivison = 'Casual Dining' AND VBrand_Name = 'Pinkberry' AND VCountry_Name = 'Egypt' AND VCity = 'Cairo' AND VBuilding_mall_name = 'Dandy Mega Mall' GROUP BY VStore_Name

AND の最初の出現のみを削除したいのですが、どうすれば削除できますか。

前もって感謝します

4

3 に答える 3

3

stringByReplacingCharactersInRange最初の「AND」のみを置き換えるために使用します。

NSString* s = @"Select *  from Store_Master where AND  VDivison = 'Casual Dining' AND VBrand_Name = 'Pinkberry' AND VCountry_Name = 'Egypt' AND VCity = 'Cairo' AND VBuilding_mall_name = 'Dandy Mega Mall' GROUP BY VStore_Name";
NSRange replaceRange = [s rangeOfString:@"AND"];
if (replaceRange.location != NSNotFound){
    NSString* result = [s stringByReplacingCharactersInRange:replaceRange withString:@""];
}

その結果、次のようになります。

Select *  from Store_Master where   VDivison = 'Casual Dining' AND VBrand_Name = 'Pinkberry' AND VCountry_Name = 'Egypt' AND VCity = 'Cairo' AND VBuilding_mall_name = 'Dandy Mega Mall' GROUP BY VStore_Name

編集:

AND大文字と小文字を区別しない方法で (大文字または小文字に関係なく)の出現を削除する場合NSStringCompareOptionsは、次のように NSRange を作成するときに を使用します。

NSRange replaceRange = [s rangeOfString:@"and" options:NSCaseInsensitiveSearch];

コードの残りの部分は同じです。

于 2012-05-23T06:13:45.533 に答える
0
NSString *s = @"your string";
NSInteger loc = [s rangeOfString: @"AND"].location;
if (loc != NSNotFound) s = [NSString stringWithFormat: @"%@%@", [s substringToIndex: loc], [s substringFromIndex: loc + 3]];

これにより、最初に出現するANDが削除されます。2行目は、最初に出現した場所を示しています。3行目は、前後の部分文字列を取得し、stringWithFormatを使用してそれらをまとめます。

場所を取得した後、それを削除する他の方法があります。たとえば、を使用して範囲を指定して検索-置換するstringByReplacingCharactersInRangeか、私の例のようにstringByAppendingStringパーツを連結するために使用します。

于 2012-05-23T06:28:42.113 に答える
0
NSString *String1 = @"Select *  from Store_Master where AND  VDivison = 'Casual Dining' AND VBrand_Name = 'Pinkberry' AND VCountry_Name = 'Egypt' AND VCity = 'Cairo' AND VBuilding_mall_name = 'Dandy Mega Mall' GROUP BY VStore_Name";
NSString *String2 = [String1 stringByReplacingOccurrencesOfString:@"AND" withString:@""];



NSString * aString  = @"Select *  from Store_Master where AND  VDivison = 'Casual Dining' AND VBrand_Name = 'Pinkberry' AND VCountry_Name = 'Egypt' AND VCity = 'Cairo' AND VBuilding_mall_name = 'Dandy Mega Mall' GROUP BY VStore_Name";
NSRange replaceRange = [aString rangeOfString:@"AND"];
if (replaceRange.location !=NSNotFound){
    NSString * newString = [aString stringByReplacingCharactersInRange:replaceRange withString:@""];
    NSLog(newString);
}
于 2012-05-23T06:07:57.207 に答える