You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter是否有英文名称列表类包?若无请提供替代获取方案

Flutter生态中的英文名称工具包及替代方案

可用第三方包

  • name_generator:内置英文姓名(名+姓)数据集,支持直接获取列表或随机生成,使用逻辑和english_words高度相似,导入后即可快速调用。
  • faker:作为通用假数据生成包,内置英文姓名模块,可批量生成或获取预设名称列表,还支持按性别、地区筛选结果。

无合适包时的替代方法

方法一:本地嵌入预生成名称列表

  1. 整理公开的英文姓名数据集为每行一个名称的纯文本文件(如names.txt),放入项目assets目录。
  2. 在pubspec.yaml中声明资源:
assets:
  - assets/names.txt
  1. 读取并解析列表的代码:
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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 10:54:34