Tengo una cadena como esta: @"10/04/2011"
y quiero guardar solo el "10" en otra cadena. ¿Cómo puedo hacer eso?
Tengo una cadena como esta: @"10/04/2011"
y quiero guardar solo el "10" en otra cadena. ¿Cómo puedo hacer eso?
Respuestas:
NSArray* foo = [@"10/04/2011" componentsSeparatedByString: @"/"];
NSString* firstBit = [foo objectAtIndex: 0];
Actualización 7/3/2018:
Ahora que la pregunta ha adquirido una etiqueta Swift, debería agregar la forma Swift de hacerlo. Es casi tan simple:
let substrings = "10/04/2011".split(separator: "/")
let firstBit = substrings[0]
Aunque tenga en cuenta que le da una variedad de Substring
. Si necesita convertirlos de nuevo a cadenas normales, usemap
let strings = "10/04/2011".split(separator: "/").map{ String($0) }
let firstBit = strings[0]
o
let firstBit = String(substrings[0])
[foo firstObject]
podría ser mejor en el caso general porque también manejará adecuadamente la matriz vacía.
Cualquiera de estos 2:
NSString *subString = [dateString subStringWithRange:NSMakeRange(0,2)];
NSString *subString = [[dateString componentsSeparatedByString:@"/"] objectAtIndex:0];
Sin embargo, tenga en cuenta que a veces una cadena de fecha no está formateada correctamente y un día (o un mes) se muestra como 8, en lugar de 08, por lo que la primera podría ser la peor de las 2 soluciones.
Este último debe colocarse en una matriz separada para que pueda verificar la longitud de la cosa devuelta, para que no se produzcan excepciones en el caso de una cadena de fecha corrupta o inválida de cualquier fuente que tenga.
Está funcionando bien
NSString *dateString = @"10/10/2010";//Date
NSArray* dateArray = [dateString componentsSeparatedByString: @"/"];
NSString* dayString = [dateArray objectAtIndex: 0];
Utilizar [myString componentsSeparatedByString:@"/"]
He formateado la buena solución proporcionada por JeremyP arriba en una función reutilizable más genérica a continuación:
///Return an ARRAY containing the exploded chunk of strings
+(NSArray*)explodeString:(NSString*)stringToBeExploded WithDelimiter:(NSString*)delimiter
{
return [stringToBeExploded componentsSeparatedByString: delimiter];
}