【问题标题】:Capitalize letter of a string[] value in Java (Android) [duplicate]Java(Android)中字符串[]值的大写字母[重复]
【发布时间】:2016-05-06 14:51:29
【问题描述】:

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

我这里有这段String[]

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

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

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);

现在,问题是,这段代码只将第一个单词的第一个字母大写,但在包含多个单词的值上,也是如此。

有人可以帮我处理这段代码,以便它可以将所有单词的第一个字母大写吗?

【问题讨论】:

  • 你可以使用 String[] allWords = string.split(" ");

标签: java android arrays string


【解决方案1】:

您需要将每个单词拆分为单词列表,然后将它们大写,然后加入它们。这里是:

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 将如下所示:

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

【讨论】:

  • 非常感谢,我尝试了 String[] 单词,但在此过程中卡住了。现在它起作用了。再次感谢你。 :D
猜你喜欢
  • 2019-03-27
  • 2011-05-28
  • 2013-02-21
  • 2016-06-06
  • 2019-06-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-02
相关资源
最近更新 更多