J'ai besoin d'une chaîne de format comme "Send %d seconds ago"
, "Harry like %s", "I think %1$s like %2$s"
. Ceux-ci peuvent être implémentés dans Android, mais je ne sais pas comment les implémenter dans Dart of Flutter.
Dart supporte l'interpolation de chaîne
var seconds = 5;
print("Send $seconds seconds ago");
var harryLikes = 'Silvia';
var otherName = 'Erik';
var otherLikes = 'Chess';
print("Harry like $harryLikes", "I think $otherName like $otherLikes");
De plus, des expressions plus complexes peuvent être incorporées avec ${...}
print('Calc 3 + 5 = ${3 + 5}');
Les types de nombre et le package intl
fournissent davantage de méthodes pour formater les nombres et les dates.
Voir par exemple:
Ajoutez ce qui suit à votre pubspec.yaml
dependencies:
sprintf: "^4.0.0"
puis lancez pub install.
Ensuite, importez Dart-sprintf:
import 'package:sprintf/sprintf.Dart';
Exemple #
import 'package:sprintf/sprintf.Dart';
void main() {
double seconds = 5.0;
String name = 'Dilki';
List<String> pets = ['Cats', 'Dogs'];
String sentence1 = sprintf('Sends %2.2f seconds ago.', [seconds]);
String sentence2 = sprintf('Harry likes %s, I think %s likes %s.', [pets[0], name, pets[1]]);
print(sentence1);
print(sentence2);
}
Sortie
Sends 5.00 seconds ago.
Harry likes Cats, I think Dilki likes Dogs.