Se ho questo:
int toSplit = 208;
Qual è il modo migliore per dividerlo così ottengo:
2
0
8
risposte:
3 per risposta № 1Il metodo sarebbe come questo
- (NSMutableArray *) toCharArray : (NSString *) str
{
NSMutableArray *characters = [[NSMutableArray alloc] initWithCapacity:[str length]];
for (int i=0; i < [str length]; i++)
{
NSString *ichar = [NSString stringWithFormat:@"%c", [str characterAtIndex:i]];
[characters addObject:ichar];
}
return characters;
}
2 per risposta № 2
do {
int digit = toSplit % 10;
toSplit /= 10;
printf(@"%i", digit);
} while (toSplit > 0);
Spero che non sia un compito a casa.
EDIT: è indietro quindi non è una risposta valida ... Tuttavia, lasciandolo qui perché può essere ancora utile per gli altri.
0 per risposta № 3
Ordinalo in una stringa e poi separalo. Quindi in questo modo:
int toSplit = 208;
NSString *string = [NSString stringWithFormat: @"%i", toSplit];
NSMutableString *splitApartString = [[NSMutableString alloc] init];
for (int i = 0; i < [string length]; i++) {
NSString *substring = [string substringFromIndex: i];
[splitApartString appendFormat: @"%@n", substring];
}
NSLog(@"%@", splitApartString); //YAY!
Quindi, ciò che fa è mettere questa int in una stringa, dividerla, quindi scorrere ogni personaggio e ottenere una stringa da quel personaggio. Quindi aggiunge la sottostringa a una nuova stringa.
Un'altra alternativa, invece di ottenere una sottostringa basta prendere il carattere e usare il %c
operatore. Inoltre se dai un'occhiata a questo codice vedrai questo output:
> 2
> 0
> 8
> // extra space here
Potresti semplicemente aggiungere una condizione per verificare se i
è la lunghezza della stringa - 1 e non aggiungere uno spazio o è sufficiente rimuovere l'ultimo carattere!
0 per risposta № 4
Non ho familiarità con la sintassi Objective-C, ma qualcosa del tipo:
void split(int toSplit)
{
if (!toSplit)
{
return;
}
split(toSplit / 10);
int digit = toSplit % 10;
printf(@"%i", digit);
}