Flutter是否有英文名称列表类包?若无请提供替代获取方案
Flutter生态中的英文名称工具包及替代方案
可用第三方包
- name_generator:内置英文姓名(名+姓)数据集,支持直接获取列表或随机生成,使用逻辑和
english_words高度相似,导入后即可快速调用。 - faker:作为通用假数据生成包,内置英文姓名模块,可批量生成或获取预设名称列表,还支持按性别、地区筛选结果。
无合适包时的替代方法
方法一:本地嵌入预生成名称列表
- 整理公开的英文姓名数据集为每行一个名称的纯文本文件(如
names.txt),放入项目assets目录。 - 在
pubspec.yaml中声明资源:
assets: - assets/names.txt
- 读取并解析列表的代码:
import 'package:flutter/services.dart'; Future<List<String>> loadEnglishNames() async { final String rawData = await rootBundle.loadString('assets/names.txt'); return rawData.split('\n').where((name) => name.trim().isNotEmpty).toList(); }
方法二:规则化生成名称
基于常用英文姓名的特征,结合基础名库生成批量名称,无需手动输入所有条目:
import 'dart:math'; List<String> generateEnglishNames(int totalCount) { final List<String> givenNames = [ 'James', 'Mary', 'Robert', 'Patricia', 'Michael', 'Jennifer', 'William', 'Linda', 'David', 'Elizabeth' ]; final List<String> familyNames = [ 'Miller', 'Davis', 'Garcia', 'Rodriguez', 'Wilson', 'Martinez', 'Anderson', 'Taylor', 'Thomas', 'Hernandez' ]; final List<String> resultNames = []; final random = Random(); for (int i = 0; i < totalCount; i++) { final givenName = givenNames[random.nextInt(givenNames.length)]; final familyName = familyNames[random.nextInt(familyNames.length)]; resultNames.add('$givenName $familyName'); } return resultNames; }
内容的提问来源于stack exchange,提问作者SpeeDfire12
相关产品推荐
相关产品推荐

