liste listFinal = []; p>
SO LISTFORINAL Ayez des valeurs de la liste multiple à l'intérieur comme ci-dessous. [["Test: 111-333-5555" "," Test2: 222-333-4555 "], [" Test3: 555-333-22222 "]] P>
Comment puis-je faire cette liste de sorte qu'il n'entraîne que les chiffres et séparez avec la virgule? P>
Le résultat final devrait être comme [1113335555, 2223334555, 5553332222] P>
Je peux penser à la coupe ou à la réégycle, mais je ne sais pas comment retirer cela. P>
Merci beaucoup. P>
3 Réponses :
Essayez ceci
Quelques astuces: les annotations de type sur les variables ne sont pas recommandées pour le code de dard idiomatique ( dart.dev/guides/language/effective-dart/.../a>). Le .tostring () code> appel d'un argument à
Imprimer () code> n'est pas nécessaire. L'appel à
.tolist () code> dans un argument à
.Addall () code> n'est pas nécessaire. Le
e.tostring () code> n'est pas nécessaire car
E code> est déjà une chaîne - ceci serait clair si vous n'avez pas saisi la variable locale sous la liste
list
> code>
Voici un exemple pour vous aider à démarrer. Cela ne gère pas de choses comme des chaînes d'entrée malformées. La première étape consiste à "aplatir" la liste avec Vous pouvez voir cela en action sur Dartpad. P> .expand code>, puis pour chaque élément de l'utilisation actionnée aplatie utilise une regex pour extraire la sous-chaîne. D'autres options peuvent inclure à l'aide d'utiliser
.Substring code> pour extraire exactement les 12 derniers caractères de la chaîne.
void main() {
final input = [
['test: 111-333-5555', 'test2: 222-333-4555'],
['test3: 555-333-2222']
];
final flattened = input.expand((e) => e); // un-nest the lists
// call extractNumber on each element of the flattened iterable,
// then collect to a list
final result = flattened.map(extractNumber).toList();
print(result);
}
final _numberRegExp = RegExp(r'.*: ([\d-]+)$');
int extractNumber(String description) {
var numberString = _numberRegExp.firstMatch(description).group(1);
return int.parse(numberString.replaceAll('-', ''));
}
Vient de remarquer que vous le vouliez comme intens code>. Mis à jour le dartpad.
Faisons cela de manière simple. Ici, j'ai pris votre liste comme entrée de l'entrée et stocké le résultat dans les résultats.
Pour chaque élément d'INPUTLIST, nous obtenons une sous-liste. J'ai converti les éléments de cette sous-liste dans le format nécessaire et ajouté ceux-ci dans une liste. P> codage heureux :) p> p>
Quelques astuces: nous évitons généralement d'utiliser .foreach code> avec une fonction littérale à l'intérieur ( dart.dev/guides/language/effective-dart/.../a>).
string.split () code> renvoie une liste afin qu'il n'y ait pas besoin d'appeler
.tolist () code> suivant
.split () code>. Pour la chaîne finale, l'approche idiomatique est l'interpolation au lieu d'utiliser
+ code> sur les chaînes.
impression ('Liste de sortie: $ résultant'); code> ( Dart.Dev/Guides/Language/effective-Dart/.../a>)