Convertir une chaîne en un entier


87

J'ai du mal à convertir une chaîne en entier. Je l'ai googlé, mais tout ce que je peux trouver, c'est comment convertir un int en une chaîne. Est-ce que quelqu'un sait comment faire l'inverse? Merci.

Réponses:



22

Que diriez-vous

[@"7" intValue];

De plus, si vous voulez un, NSNumbervous pouvez le faire

NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter numberFromString:@"7"];

6
bon seigneur NSNumberFormatter est complexe ... je veux dire "fonctionnalité complète".
Dave Dopson

4
Attention - dans iOS7 numberFromStringsemble être une méthode d' instance plutôt qu'une méthode de classe , vous devriez donc le faire à la [[NSNumberFormatter new] numberFromString:@"7"];place.
mgarciaisaia

@mgarciaisaia ne devrions-nous pas faire [[[NSNumberFormatter alloc] init] numberFromString:@"7"];selon stackoverflow.com/questions/719877/…
Michael Osofsky

3

J'utilise:

NSInteger stringToInt(NSString *string) {
    return [string integerValue];
}

Et vice versa:

NSString* intToString(NSInteger integer) {
    return [NSString stringWithFormat:@"%d", integer];
}

1
vérifiez votre valeur de retour. NSString *
AWF4vk

J'utilise des données extraites de NSUserDefaults alors que dois-je mettre après le NSString * string =
MacN00b

L'un ou l'autre fonctionnera-t-il réellement? Les définitions ont sûrement besoin d'un point-virgule ou vous allez tomber en panne unrecognized selectorparce que vous n'enverrez @selector(intToString:)pas réellement @selector(intToString). Cela devrait sûrement être comme ça à la place - (NSInteger) stringToInt:(NSString *)string;et- (NSString *)intToString:(NSInteger)integer;
Paul.s

1
Ce sont toutes les deux des fonctions C. Il doit l'être NSString *, comme l'a dit @David.
Espresso le

@Espresso cheers Je n'ai pas d'expérience en C donc ça a plus de sens maintenant
Paul.s


1

C'est la solution simple pour convertir une chaîne en int

NSString *strNum = @"10";
int num = [strNum intValue];

mais lorsque vous obtenez de la valeur à partir du champ de texte ,

int num = [txtField.text intValue];

txtField est une sortie de UITextField


1

Je devais faire quelque chose comme ça mais je voulais utiliser un getter / setter pour le mien. En particulier, je voulais revenir un long d'un champ de texte. Les autres réponses ont toutes bien fonctionné aussi, j'ai juste fini par adapter un peu la mienne au fur et à mesure que mon projet scolaire évoluait.

long ms = [self.textfield.text longLongValue];
return ms;

0
NSString *string = /* Assume this exists. */;
int value = [string intValue];

J'utilise des données extraites de NSUserDefaults alors que dois-je mettre après le NSString * string =
MacN00b

1
NSString * string = [[NSUserDefaults standardUserDefaults] stringForKey: @ "VOTRE_KEY"];
Benjamin Mayo

0

Très facile..

int (name of integer) = [(name of string, no ()) intValue];


0

Encore une autre façon: si vous travaillez avec une chaîne C, par exemple const char *, C native atoi()est plus pratique.


0

Vous pouvez également utiliser comme:

NSInteger getVal = [self.string integerValue];


0

Pour convertir un numéro de chaîne en un Int , vous devez faire ceci:

let stringNumber = "5"
let number = Int(stringNumber)

Il s'agit d'une copie exacte d'une réponse existante.
Pranav Kasetti
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.