217 votes

Comment analyser une chaîne de caractères en un nombre avec Dart ?

Je voudrais analyser des chaînes de caractères comme 1 o 32.23 en nombres entiers et doubles. Comment puis-je faire cela avec Dart ?

8voto

Zihan Points 1

Les solutions ci-dessus ne fonctionneront pas pour String comme :

String str = '123 km';

Donc, la réponse en une seule ligne, qui fonctionne dans toutes les situations pour moi sera :

int r = int.tryParse(str.replaceAll(RegExp(r'[^0-9]'), '')) ?? defaultValue;
or
int? r = int.tryParse(str.replaceAll(RegExp(r'[^0-9]'), ''));

Mais attention, cela ne fonctionnera pas pour les chaînes de caractères suivantes

String problemString = 'I am a fraction 123.45';
String moreProblem = '20 and 30 is friend';

Si vous voulez extraire le double qui fonctionnera dans tous les types, alors utilisez :

double d = double.tryParse(str.replaceAll(RegExp(r'[^0-9\.]'), '')) ?? defaultValue;
or
double? d = double.tryParse(str.replaceAll(RegExp(r'[^0-9\.]'), ''));

Cela fonctionnera pour problemString mais pas pour moreProblem .

7voto

Rajni Gujarati Points 255

Vous pouvez analyser une chaîne de caractères avec int.parse('your string value'); .

Exemple:- int num = int.parse('110011'); print(num); // prints 110011 ;

1voto

Arfina Arfwani Points 46

Si vous ne savez pas si votre type est string ou int, vous pouvez faire comme ceci :

int parseInt(dynamic s){
  if(s.runtimeType==String) return int.parse(s);
  return s as int;
}

Pour le double :

double parseDouble(dynamic s){
  if(s.runtimeType==String) return double.parse(s);
  return s as double;
}

Vous pouvez donc faire parseInt('1') ou parseInt(1)

0voto

Siraj Ahmed Points 77
String age = stdin.readLineSync()!; // first take the input from user in string form
int.parse(age);  // then parse it to integer that's it

0voto

Vous pouvez le faire pour une conversion facile comme ceci

Exemple de code ici

void main() {
  var myInt = int.parse('12345');
 var number = myInt.toInt();
  print(number); // 12345
  print(number.runtimeType);  // int

    var myDouble = double.parse('123.45');
  var double_int = myDouble.toDouble();
  print(double_int); // 123.45
   print(double_int.runtimeType);  
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X