大写的第一个字符

时间:2012-07-13 05:54:08

标签: java string

  

可能重复:
  How to upper case every first letter of word in a string?
  Most efficient way to make the first character of a String lower case?

我想将字符串的第一个字母转换为大写字母。我正在尝试使用JavaDocs中描述的replaceFirst(),但我不知道正则表达式的含义。

这是我到目前为止尝试过的代码:

public static String cap1stChar(String userIdea)
{
    String betterIdea, userIdeaUC;
    char char1;
    userIdeaUC = userIdea.toUpperCase();
    char1 = userIdeaUC.charAt(0);
    betterIdea = userIdea.replaceFirst(char1); 
    return betterIdea;
}//end cap1stChar

编译器错误是参数列表的长度不同。我认为这是因为缺少正则表达式,但我不知道究竟是什么。

7 个答案:

答案 0 :(得分:69)

Regular Expressions(缩写为“regex”或“reg-ex”)是一个定义搜索模式的字符串。

replaceFirst()所做的是它使用参数中提供的正则表达式,并将搜索的第一个结果替换为您传入的任何内容作为另一个参数。

您要做的是使用String类'charAt()方法将字符串转换为数组,然后使用Character.toUpperCase()将字符更改为大写(显然)。你的代码看起来像这样:

char first = Character.toUpperCase(userIdea.charAt(0));
betterIdea = first + userIdea.substring(1);

或者,如果您对更复杂,单行的Java代码感到满意:

betterIdea = Character.toUpperCase(userIdea.charAt(0)) + userIdea.substring(1);

这两个都做同样的事情,即将userIdea的第一个字符转换为大写字符。

答案 1 :(得分:38)

或者你可以做到

s = Character.toUpperCase(s.charAt(0)) + s.substring(1); 

答案 2 :(得分:5)

public static String cap1stChar(String userIdea)
{
    char[] stringArray = userIdea.toCharArray();
    stringArray[0] = Character.toUpperCase(stringArray[0]);
    return userIdea = new String(stringArray);
}

答案 3 :(得分:3)

编译错误是由于没有正确提供参数,replaceFirst接受regx作为初始arg。 [a-z] {1}将匹配长度为1的简单字母字符串。

试试这个。

betterIdea = userIdea.replaceFirst("[a-z]{1}", userIdea.substring(0,1).toUpperCase())

答案 4 :(得分:3)

String toCamelCase(String string) {
    StringBuffer sb = new StringBuffer(string);
    sb.replace(0, 1, string.substring(0, 1).toUpperCase());
    return sb.toString();

}

答案 5 :(得分:2)

userIdeaUC = userIdea.substring(0, 1).toUpperCase() + userIdea.length() > 1 ? userIdea.substring(1) : "";

userIdeaUC = userIdea.substring(0, 1).toUpperCase();
if(userIdea.length() > 1)
   userIdeaUC += userIdea.substring(1);

答案 6 :(得分:0)

为了完整起见,如果你想使用replaceFirst,试试这个:

public static String cap1stChar(String userIdea)
{
  String betterIdea = userIdea;
  if (userIdea.length() > 0)
  {
    String first = userIdea.substring(0,1);
    betterIdea = userIdea.replaceFirst(first, first.toUpperCase());
  }
  return betterIdea;
}//end cap1stChar