我创建了一个程序来解析名字、中间名和姓氏。这是程序和输出。这个程序绝对可以改进,需要一些输入来减少我繁琐的丑陋代码并将其替换为更好的代码。有什么建议或例子吗?
public class Test {
public static void main(String[] args) {
String fullName = "John King IV. Cena";
String[] tokens = fullName.split(" ");
String firstName = "";
String middleName = "";
String lastName = "";
if(tokens.length > 0) {
firstName = tokens[0];
middleName = tokens.length > 2 ? getMiddleName(tokens) : "";
lastName = tokens[tokens.length -1];
}
System.out.println(firstName);
System.out.println(middleName);
System.out.println(lastName);
}
public static String getMiddleName(String[] middleName){
StringBuilder builder = new StringBuilder();
for (int i = 1; i < middleName.length-1; i++) {
builder.append(middleName[i] + " ");
}
return builder.toString();
}
}
约翰 国王四世。 塞纳
最佳答案
此代码执行相同的操作,但不在中间名中保留尾随空格。这是几种可能的更清洁实现中的一个。
public class Test {
public static void main(String[] args) {
String name = "John King IV. Cena";
int start = name.indexOf(' ');
int end = name.lastIndexOf(' ');
String firstName = "";
String middleName = "";
String lastName = "";
if (start >= 0) {
firstName = name.substring(0, start);
if (end > start)
middleName = name.substring(start + 1, end);
lastName = name.substring(end + 1, name.length());
}
System.out.println(firstName);
System.out.println(middleName);
System.out.println(lastName);
}
}
正如大伙所说,下次直接去https://codereview.stackexchange.com/
关于java - 字符串全名分割java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6702534/