大写的第一个字符

Mat*_*t B 33 java string

可能重复:
如何在字符串中的每个第一个字母大写?
最有效的方法是使String小写的第一个字符?

我想将字符串的第一个字母转换为大写字母.我正在尝试使用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
Run Code Online (Sandbox Code Playgroud)

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

Jon*_*and 70

正则表达式(缩写为"regex"或"reg-ex")是定义搜索模式的字符串.

什么replaceFirst()做的是它采用的参数提供的正则表达式,并从与您通过任何与其他参数搜索替换第一个结果.

你想要做的是使用String类' charAt()方法将字符串转换为数组,然后使用Character.toUpperCase()将字符更改为大写(显然).您的代码如下所示:

char first = Character.toUpperCase(userIdea.charAt(0));
betterIdea = first + userIdea.substring(1);
Run Code Online (Sandbox Code Playgroud)

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

betterIdea = Character.toUpperCase(userIdea.charAt(0)) + userIdea.substring(1);
Run Code Online (Sandbox Code Playgroud)

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

  • `userIdea.toCharArray()[0]`执行`userIdea.charAt(0)是一种昂贵的方法. (2认同)

Pet*_*rey 40

或者你可以做到

s = Character.toUpperCase(s.charAt(0)) + s.substring(1); 
Run Code Online (Sandbox Code Playgroud)

  • 也许那些不希望他们的程序因意外的空字符串而崩溃的人;-) (4认同)
  • @Thilo:是的,它适用于长度为1的字符串. (2认同)
  • 为什么有人想要获得空字符串的第一个字符的大写等价物? (2认同)
  • @Dominik你的意思是"意外的空字符串"?"null"是一种不同的情况. (2认同)

Pra*_*mar 6

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