使用faker生成java姓氏,但只生成必需的字母

使用faker生成java姓氏,但只生成必需的字母,java,expression,faker,Java,Expression,Faker,在我们的测试中需要使用一些名称生成器,因此我们使用了: <dependency> <groupId>com.github.javafaker</groupId> <artifactId>javafaker</artifactId> </dependency> Faker faker = new Faker(); String firstName = faker.name().firstName(); Str

在我们的测试中需要使用一些名称生成器,因此我们使用了:

<dependency>
    <groupId>com.github.javafaker</groupId>
    <artifactId>javafaker</artifactId>
</dependency>

Faker faker = new Faker();
String firstName = faker.name().firstName();
String lastName = faker.name().lastName();
…和其他{regexify'A-Za-z'},{regexify'[A-Za-z]+'}…,但它没有帮助。不管怎样,我都能在姓氏中发现“姓”

有没有办法解决这个问题?

可以使用replaceAll表达式[^A-Za-z]只允许使用字母字符:

Faker faker = new Faker();
String firstName = faker.name().firstName();
String lastName = faker.name().lastName().replaceAll("[^A-Za-z]", "");
可以使用replaceAll表达式[^A-Za-z]仅允许使用字母字符:

Faker faker = new Faker();
String firstName = faker.name().firstName();
String lastName = faker.name().lastName().replaceAll("[^A-Za-z]", "");

Faker有一堆yml文件,其中包含最流行的名称/姓氏等。支持很多地区。解决问题的方法是为自定义语言环境提供自定义文件

Faker Faker=新Fakernew Localeen,测试

自定义文件示例en-TEST.yml:

因此,您可以从默认文件的本地语言环境中复制姓氏值,并删除所有您不喜欢的内容。伪造者将拾取自定义文件并使用它进行随机生成

p、 美国。
作为一种选择,你可以浏览现有的文件,只找到一个没有坏姓氏的文件。但是,不能保证faker的新版本会保留相同的值。

faker有一组yml文件,其中包含最流行的名称/姓氏等。支持多个地区。解决问题的方法是为自定义语言环境提供自定义文件

Faker Faker=新Fakernew Localeen,测试

自定义文件示例en-TEST.yml:

因此,您可以从默认文件的本地语言环境中复制姓氏值,并删除所有您不喜欢的内容。伪造者将拾取自定义文件并使用它进行随机生成

p、 美国。
作为一种选择,你可以浏览现有的文件,只找到一个没有坏姓氏的文件。但是,不能保证新版本的faker会保留相同的值。

我认为这是在faker配置正确的情况下可以避免使用的解决方法。我认为这是在faker配置正确的情况下可以避免使用的解决方法。
en-TEST:
  faker:
    name:
      name:
        - "#{first_name} #{last_name}"
      first_name: [
                    Adedayo
                  ]
      last_name: [
                    Tella
                  ]