在Java(Android)中大写字符串[]值的字母

Capitalize letter of a string[] value in Java (Android)

本问题已经有最佳答案,请猛点这里访问。

如果有人愿意帮助新手,我需要一些帮助。

我这里有这根绳子

1
String [] localitate = new String[]{"abrud","aiud","alba iulia","albac","almasu mare","arieseni","avram iancu"};

这里的这段代码将第一个字母大写(我正在创建一个autocompleteTextView)

1
2
3
4
5
6
7
8
9
for(int i = 0 ; i < localitate.length; i++)
{
    //localitate[i] = localitate[i].charAt(0).toUpperCase();
    localitate[i] = localitate[i].substring(0, 1).toUpperCase() + localitate[i].substring(1).toLowerCase();
}

AutoCompleteTextView addressCity = (AutoCompleteTextView) findViewById(R.id.editText_objective_address_city);

ArrayAdapter<String> localitati = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, localitate);

现在,问题是,这段代码只将第一个单词的第一个字母大写,但是在多个单词的值上,它的作用是一样的。

有人能帮我写这段代码吗?这样它就可以把第一个字母大写成所有单词?


您需要的是将每个单词拆分为单词列表,然后将它们大写,然后将它们联接起来。这里是:

1
2
3
4
5
6
7
8
9
for(int i = 0 ; i < localitate.length; i++)
{
    String tmp ="";
    String[] words = localitate[i].split("");
    for (int j = 0; j < words.length; j++) {
        tmp += words[j].substring(0, 1).toUpperCase() + words[j].substring(1).toLowerCase() +"";
    }
    localitate[i] = tmp.trim(); // trim is to delete last space
}

localitate将如下所示:

1
[Abrud, Aiud, Alba Iulia, Albac, Almasu Mare, Arieseni, Avram Iancu]