2014-10-30 41 views
-3

我需要大寫第一個名稱的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

您的文章不包含質詢。你也沒有附加有用的,完整的方法源代碼。 – 2014-10-30 00:10:51

+0

那麼,什麼是問題?請告訴我們更多關於這個問題。 – Mac70 2014-10-30 00:11:01

回答

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] 
+0

或者他可以使用http://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/text/WordUtils.html:D。 – Tom 2014-10-30 00:26:04

+0

@OmarGonzalez如果您的問題得到解答,請不要忘記[接受](http://meta.stackexchange.com/a/5235/243725)。 – 2014-10-30 00:31:24