Eu tenho uma string como esta: @"10/04/2011"
e quero salvar apenas o "10" em outra string. Como eu posso fazer isso?
Eu tenho uma string como esta: @"10/04/2011"
e quero salvar apenas o "10" em outra string. Como eu posso fazer isso?
Respostas:
NSArray* foo = [@"10/04/2011" componentsSeparatedByString: @"/"];
NSString* firstBit = [foo objectAtIndex: 0];
Atualização 03/03/2018:
Agora que a pergunta adquiriu uma tag Swift, devo adicionar a maneira Swift de fazer isso. É tão simples quanto:
let substrings = "10/04/2011".split(separator: "/")
let firstBit = substrings[0]
Embora note que ele fornece uma variedade de Substring
. Se você precisar convertê-los novamente em seqüências comuns, usemap
let strings = "10/04/2011".split(separator: "/").map{ String($0) }
let firstBit = strings[0]
ou
let firstBit = String(substrings[0])
[foo firstObject]
pode ser melhor no caso geral, porque também manipulará adequadamente a matriz vazia.
Qualquer um destes 2:
NSString *subString = [dateString subStringWithRange:NSMakeRange(0,2)];
NSString *subString = [[dateString componentsSeparatedByString:@"/"] objectAtIndex:0];
Embora tenha em mente que, às vezes, uma sequência de datas não é formatada corretamente e um dia (ou um mês) é mostrado como 8, em vez de 08, portanto a primeira pode ser a pior das 2 soluções.
O último deve ser colocado em uma matriz separada, para que você possa realmente verificar o tamanho da coisa retornada, para que você não obtenha nenhuma exceção lançada no caso de uma sequência de datas corrompida ou inválida de qualquer fonte que você tenha.
Está funcionando bem
NSString *dateString = @"10/10/2010";//Date
NSArray* dateArray = [dateString componentsSeparatedByString: @"/"];
NSString* dayString = [dateArray objectAtIndex: 0];
Usar [myString componentsSeparatedByString:@"/"]
Formatei a boa solução fornecida por JeremyP acima em uma função reutilizável mais genérica abaixo:
///Return an ARRAY containing the exploded chunk of strings
+(NSArray*)explodeString:(NSString*)stringToBeExploded WithDelimiter:(NSString*)delimiter
{
return [stringToBeExploded componentsSeparatedByString: delimiter];
}