Digamos que me extracto de un solo carácter en un NSString como este:

[@"This is my String" characterAtIndex:0]

¿Cómo puedo averiguar si el personaje que me sale es en minúsculas o en mayúsculas?

Gracias por cualquier adivice!

¿NSString ha objectAtIndex?
No, eso fue un error de tipeo. Me di cuenta de el error ya cuando leí el post después de la presentación de la misma. Lo siento.

OriginalEl autor Funkybit | 2011-06-15

4 Comentarios

  1. 34
    BOOL isUppercase = [[NSCharacterSet uppercaseLetterCharacterSet] characterIsMember:[s characterAtIndex:0]];
    +1 Probablemente vale la pena señalar que !isUppercase no es equivalente a isLowercase.
    De hecho, usted puede hacer a la inversa con lowercaseLetterCharacterSet etc.
    Gracias! Esto funciona como un encanto!
    No he probado esto, pero la lógica me dice que el uppercaseLetterCharacterSet es una colección de todos los caracteres en mayúsculas. Números y otros caracteres en minúsculas volvería vuelta si la prueba !isUppercase

    OriginalEl autor Simon Lee

  2. 5
    unichar ch = [@"This is my String" characterAtIndex:0];
    
    if (ch >= 'A' && ch <= 'Z') {
        //upper case
    } else if (ch >= 'a' && ch <= 'z') {
       //lower case
    }

    Tenga en cuenta que esto sólo funciona para el alfabeto inglés.

    Por qué esto es votada abajo? Una explicación podría haber ayudado a mí.
    Buena pregunta. Esta es limitado, pero parece perfectamente solución si las restricciones se cumplen.
    Esto también funciona, solo testet. Pero sí, la necesito para el alemán conjuntos de caracteres, por lo que esta verificación es un poco limitada. De todos modos gracias por el consejo!
    usted debería haber mencionado que, en la pregunta 😛
    Entiendo la limitación y mencionó que en la respuesta. Y no fue mencionado en la pregunta que el alemán es necesario.

    OriginalEl autor taskinoor

  3. 1
    NSString *firstChar = [NSString stringWithFormat:@"%c", [@"This is my String" characterAtIndex:0]];
    
    BOOL isUpperCase = [firstChar isEqualToString:[firstChar uppercaseString]];

    Tenga en cuenta que, si el personaje no tiene mayúsculas/minúsculas variantes (como el número 1, 2, etc), el isUpperCase siempre regreso SÍ.

    OriginalEl autor hoang21

  4. -1

    No sé objective C, pero se puede usar una expresión regular. Si coincide con [a-z], entonces es el menor caso. Si coincide con [A-Z], es mayúscula.

    -1 lo Siento, pero esto es realmente un ejemplo de tratar de usar un martillo para desenroscar un tornillo.
    Pero iba a funcionar. No downvoting de cosas que simplemente no funcionan?
    Downvoting es para las malas respuestas. «No sé cómo hacer esto de forma nativa, pero por favor, arrastre en algunos inapropiado de la tecnología que no está normalmente presente o convenientes para el uso y, a continuación, hacer un montón más trabajo innecesario para conseguir un poco de utilidad resultado.» es una mala respuesta.
    Esto fue útil para mí, como yo estaba tratando de detectar los acrónimos de sólo palabras en mayúsculas o letras.

    OriginalEl autor Mick Sear

Dejar respuesta

Please enter your comment!
Please enter your name here