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.

MacN00b
la source

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"];
Paul.s
la source
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];
}
max_
la source
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
2

Swift 3.0:

Int("5")

ou

let stringToConvert = "5"
Int(stringToConvert)
Josh O'Connor
la source
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

iAnkit
la source
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;
natur3
la source
0
NSString *string = /* Assume this exists. */;
int value = [string intValue];
Alexsander Akers
la source
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];

Jacob
la source
0

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

dotslashlu
la source
0

Vous pouvez également utiliser comme:

NSInteger getVal = [self.string integerValue];

newbee
la source
0

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

let stringNumber = "5"
let number = Int(stringNumber)
Ale Mohamad
la source
Il s'agit d'une copie exacte d'une réponse existante.
Pranav Kasetti