2010-12-20 15 views
13

इस कोड का उपयोग करके मैं स्ट्रिंग मानों की तुलना करने में सक्षम हूं।केस-असंवेदनशील एनएसएसटींग तुलना

[elementName isEqualToString: @"Response"] 

लेकिन यह मामला-संवेदनात्मक रूप से तुलना करता है। बिना संवेदनशीलता के स्ट्रिंग की तुलना करने का कोई तरीका है?

उत्तर

30

NSString पर विधि है, तो आप the documentation क्यों नहीं पढ़ते? विधि रिटर्न NSComparisonResult:

enum { 
    NSOrderedAscending = -1, 
    NSOrderedSame, 
    NSOrderedDescending 
}; 
typedef NSInteger NSComparisonResult; 

... आह, माफ करना, बस अब मुझे एहसास हुआ कि आप केस संवेदी समानता के लिए पूछ रहे हैं। (मैं सवाल क्यों नहीं पढ़ूं? :-) डिफ़ॉल्ट isEqual: या isEqualToString: समानता पहले से ही केस संवेदनशील होनी चाहिए, क्या देता है?

+0

+1 - इतने सारे आसान तरीके, कक्षा संदर्भ दस्तावेज़ पढ़ने में बहुत कम समय बिताया। :-) –

+0

मेरा मानना ​​है कि "आप दस्तावेज़ीकरण क्यों नहीं पढ़ते?" कहने का हमेशा बेहतर तरीका है, आपके उत्तर बीटीडब्ल्यू के लिए धन्यवाद। – ersentekin

6

वास्तव में isqualToString है: केस संवेदनशील क्षमता के साथ काम करता है। के रूप में:

[elementName isEqualToString: @"Response"]; 

आप केस संवेदी तो यहाँ तुलना के लिए पूछना चाहता हूँ अगर कोड है:

आप लोअरकेस या अपरकेस करने के लिए दोनों तुलनीय स्ट्रिंग बदल सकते हैं, और जैसा कि तुलना कर सकते हैं:

NSString *tempString = @"Response"; 
NSString *string1 = [elementName lowercaseString]; 
NSString *string2 = [tempString lowercaseString]; 

//The same code changes both strings in lowerCase. 
//Now You Can compare 

if([string1 isEqualToString:string2]) 
{ 

//Type your code here 

} 
14

यहां कोड है जिसके बारे में आपको यह पता लगाने के बिना स्ट्रिंग की तुलना करने की आवश्यकता होगी कि यह लोअरकेस या अपरकेस है:

if ([elementName caseInsensitiveCompare:@"Response"]==NSOrderedSame) 
{ 
    // Your "elementName" variable IS "Response", "response", "reSPonse", etc 
    // 
} 
1
NSString *string1 = @"stringABC"; 
NSString *string2 = @"STRINGDEF"; 
NSComparisonResult result = [string1 caseInsensitiveCompare:string2]; 

if (result == NSOrderedAscending) { 
    NSLog(@"string1 comes before string2"); 
} else if (result == NSOrderedSame) { 
    NSLog(@"We're comparing the same string"); 
} else if (result == NSOrderedDescending) { 
    NSLog(@"string2 comes before string1"); 
} 
संबंधित मुद्दे