35

可能重复:
如何将字符串中单词的每个首字母大写?
使字符串的第一个字符小写的最有效方法?

我想将字符串的第一个字母转换为大写。我正在尝试使用 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

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

4

7 回答 7

74

正则表达式(缩写为“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大写字符。

于 2012-07-13T06:04:25.253 回答
41

或者你可以做

s = Character.toUpperCase(s.charAt(0)) + s.substring(1); 
于 2012-07-13T06:00:59.983 回答
6
public static String cap1stChar(String userIdea)
{
    char[] stringArray = userIdea.toCharArray();
    stringArray[0] = Character.toUpperCase(stringArray[0]);
    return userIdea = new String(stringArray);
}
于 2012-07-13T05:58:48.397 回答
4
String toCamelCase(String string) {
    StringBuffer sb = new StringBuffer(string);
    sb.replace(0, 1, string.substring(0, 1).toUpperCase());
    return sb.toString();

}
于 2012-07-13T10:20:22.513 回答
4

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

尝试这个。

betterIdea = userIdea.replaceFirst("[a-z]{1}", userIdea.substring(0,1).toUpperCase())
于 2012-07-13T06:38:10.947 回答
3
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);
于 2012-07-13T05:56:54.533 回答
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
于 2012-07-13T06:08:20.427 回答