将中间的首字母从名称的末尾移动到中间

时间:2014-05-06 13:45:37

标签: java regex

我的字段包含以下格式的名称:First Last(Middle Initial)。并非所有字段都具有中间的首字母,而中间的字段有时具有句点,有时它不会。我需要把中间的首字母放在姓氏之前。

离。 John Smith f.必须为John f. Smith

名称的可能迭代包括:

  • John Smith
  • John Smith F
  • John Smith F.
  • John Smith f
  • John Smith f。

1 个答案:

答案 0 :(得分:1)

只需在空格\s+

上拆分

如果你没有三个部分,那么你知道没有中间名

String[] names = original.split("\\s+");
if(names.length == 3) {
   String newName = names[0] + " " + names[2] + " " + names[1];
}

在主方法中进行测试

public static void main(String[] args) {
    List<String> name = new ArrayList<>();
    name.add("John Smith");
    name.add("John Smith F.");
    name.add("John Smith f");
    name.add("John Smith-Wesson F.");
    for (String original : name) {
        String[] names = original.split("\\s+");
        if (names.length == 3) {
            System.out.println(names[0] + " " + names[2] + " " + names[1]);
        } else {
            System.out.println(original);
        }
    }
}