我的字段包含以下格式的名称:First Last(Middle Initial)。并非所有字段都具有中间的首字母,而中间的字段有时具有句点,有时它不会。我需要把中间的首字母放在姓氏之前。
离。 John Smith f.
必须为John f. Smith
名称的可能迭代包括:
答案 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);
}
}
}