2010-12-20 11 views

Respuesta

30

Hay un método caseInsensitiveCompare: en NSString, ¿por qué no lee the documentation? El método devuelve NSComparisonResult:

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

... ah, lo siento, en este momento me di cuenta de que está pidiendo mayúsculas y minúsculas igualdad. (¿Por qué no leo la pregunta? :-) La igualdad predeterminada isEqual: o isEqualToString: ya debería ser sensible a mayúsculas y minúsculas, ¿qué ofrece?

+0

+1 - Tantos métodos prácticos, tan poco tiempo dedicado a leer los documentos de referencia de la clase. :-) –

+0

Creo que siempre hay una mejor manera de decir "¿por qué no lee la documentación?", Gracias por su respuesta por cierto. – ersentekin

6

Actualmente isEqualToString: funciona con la capacidad de distinguir entre mayúsculas y minúsculas. como:

[elementName isEqualToString: @"Response"]; 

si desean solicitar sensible a mayúsculas comparar entonces aquí es el código:

Puede cambiar tanto la cadena comparable a mayúsculas o minúsculas, y se puede comparar como:

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

Aquí está el código que necesitaría para comparar una cadena sin importar si es minúscula o mayúscula:

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"); 
} 
Cuestiones relacionadas