拆分词和大写第一个字符

时间:2011-04-12 19:55:20

标签: java

我正在获取需要格式化的用户输入。我需要删除所有前导/尾随空格,我需要将每个单词的第一个字母大写。

这是我正在尝试的东西,但是......如果你在单词之间输入2个空格的东西,它会崩溃。我怎么解决这个问题?

String formattedInput = "";
String inputLineArray[] = inputLine.getText().toString().trim().split("\\s");
for (int d=0; d<inputLineArray.length; d++) {
    formattedInput = formattedInput.trim() + " " +   
            inputLineArray[d].trim().substring(0,1).toUpperCase() +
            inputLineArray[d].trim().substring(1).toLowerCase();
}

2 个答案:

答案 0 :(得分:1)

您的代码在多个空格中爆炸,因为当您拆分时,您在数组中获得的成员是空字符串"hello there",当拆分成为array[0] = "hello"时,array[1] = "",{ {1}}。

因此,当您执行array[2] = "there"时,您应该获得substring(0,1)

尝试将IndexOutOfBoundsException改为split("\\s"),这样就可以在正则表达式中拾取多个空格并将其丢弃。

编辑:

这也可以让你摆脱循环中的split("\\s+"),因为分割会处理所有空格。

答案 1 :(得分:0)

对字符串进行标记并按空格" "拆分,然后进行每次迭代并将其大写,然后再将它重新组合在一起

阅读有关字符串标记化here

的所有内容