我需要将ArrayList中的名字和姓氏大写,例如:
输入:
colette Sapienza
gretta Beumer
EMManuel Mossman
Colette Sapienza
输出:
Colete Sapienza
Gretta Beumer
Emmanuel Mossman
Colette Sapienza
代码:
ArrayList<String> a;
a = getNames();
for(int i=0; i < a.size(); i++){
if(i==0)
a.set(i, a.get(i).toUpperCase());
else if (i > 0 && i-1 ==' ')
a.set(i, a.get(i).toUpperCase());
else
a.set(i,a.get(i).toLowerCase());
}
return a;
答案 0 :(得分:1)
您似乎希望迭代List
中的名称并将每个名称的第一个字母大写(以及小写每个名称的其余部分)。您可以使用Character.toUpperCase(char)
,String.substring(int)
和String.toLowerCase()
之类的内容,
List<String> al = new ArrayList<>(Arrays.asList("colette Sapienza",
"gretta Beumer", "EMManuel Mossman", "Colette Sapienza"));
for (int index = 0; index < al.size(); index++) {
String name = al.get(index);
String[] names = name.split("\\s+");
StringBuilder sb = new StringBuilder();
for (int i = 0; i < names.length; i++) {
if (i != 0) {
sb.append(' ');
}
sb.append(Character.toUpperCase(names[i].charAt(0)));
sb.append(names[i].substring(1).toLowerCase());
}
al.set(index, sb.toString());
}
System.out.println(al);
输出
[Colette Sapienza, Gretta Beumer, Emmanuel Mossman, Colette Sapienza]