可能重复:
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
编译器错误是参数列表的长度不同。我认为这是因为缺少正则表达式,但我不知道究竟是什么。
答案 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