将名称的ArrayList中的第一个字母大写

时间:2014-10-30 00:08:30

标签: java arrays arraylist

我需要将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;

1 个答案:

答案 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]