/ / Il modo migliore per dividere interi in Objective C - obiettivo-c, intero

Il modo migliore per dividere interi in Objective C - obiettivo-c, intero

Se ho questo:

int toSplit = 208;

Qual è il modo migliore per dividerlo così ottengo:

2
0
8

risposte:

3 per risposta № 1

Il 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);
}