una titulo tendencia parabola pairs línea linea hacer graficar grafica como columna agregar objective-c

objective-c - titulo - r grafica



¿Cómo verificar si un char es un dígito o no en Objective-C? (6)

Necesito comprobar si un char es un dígito o no.

NSString *strTest=@"Test55"; char c =[strTest characterAtIndex:4];

Necesito averiguar si ''c'' es un dígito o no. ¿Cómo puedo implementar esta verificación en Objective-C?


En la norma C hay una función int isdigit( int ch ); definido en "ctype.h". Devolverá distinto de cero (VERDADERO) si ch es un dígito.

También puedes comprobarlo manualmente:

if(c>=''0'' && c<=''9'') { //c is digit }


Es posible que desee comprobar la referencia de clase NSCharacterSet .


Esto es en realidad bastante simple:

isdigit([YOUR_STRING characterAtIndex:YOUR_POS])


Hay una función de C llamada isdigit .


Puedes pensar en escribir una función genérica como la siguiente para esto:

BOOL isNumericI(NSString *s) { NSUInteger len = [s length]; NSUInteger i; BOOL status = NO; for(i=0; i < len; i++) { unichar singlechar = [s characterAtIndex: i]; if ( (singlechar == '' '') && (!status) ) { continue; } if ( ( singlechar == ''+'' || singlechar == ''-'' ) && (!status) ) { status=YES; continue; } if ( ( singlechar >= ''0'' ) && ( singlechar <= ''9'' ) ) { status = YES; } else { return NO; } } return (i == len) && status; }


Nota : El valor de retorno para characterAtIndex: no es un char , sino un unichar . Así que lanzar de esta manera puede ser peligroso ...

Un código alternativo sería:

NSString *strTest = @"Test55"; unichar c = [strTest characterAtIndex:4]; NSCharacterSet *numericSet = [NSCharacterSet decimalDigitCharacterSet]; if ([numericSet characterIsMember:c]) { NSLog(@"Congrats, it is a number..."); }