Java 第一个字符到大写字母

Java 第一个字符到大写字母,java,string,Java,String,可能重复: 我想把字符串的第一个字母转换成大写。我试图使用JavaDocs中描述的replaceFirst(),但我不知道正则表达式是什么意思 以下是我迄今为止尝试过的代码: public static String cap1stChar(String userIdea) { String betterIdea, userIdeaUC; char char1; userIdeaUC = userIdea.toUpperCase(); char1 = userI

可能重复:

我想把字符串的第一个字母转换成大写。我试图使用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
编译器错误在于参数列表的长度不同。我想这是因为正则表达式丢失了,但是我不知道它到底是什么

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

或者你可以

s = Character.toUpperCase(s.charAt(0)) + s.substring(1); 
(缩写为“regex”或“regex”)是定义搜索模式的字符串

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

您要做的是使用
string
class'方法将字符串转换为数组,然后使用
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
的第一个字符转换为大写字符。

为完整起见,如果您想使用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

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

试试这个

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

String s=“这是一个字符串”;s=s.substring(0,1).toUpperCase()+s.substring(1)您可能需要检查以下方法:可能需要删除三元表达式以使Matt B可读。不适用于短于两个字符的字符串。@Thilo:是,它适用于长度为1的字符串。为什么任何人都希望获得空字符串的第一个字符的大写等效值?可能是那些不希望自己的程序因意外的空字符串而崩溃的人;-)@Dominik你是说“意外的空字符串”吗?
null
是一种不同的情况。
userIdea.toCharArray()[0]
是一种昂贵的方式来执行
userIdea.charAt(0)
@PeterLawrey我不知道我是怎么忘记的。Thank.StringBuilder类是一个很好的伴侣,假设名称是字符串而不是代码=>if(name.length()>0){StringBuilder StringBuilder=new StringBuilder(name);if(StringBuilder.length()==1){name=String.valueOf(Character.toUpperCase(StringBuilder.charAt(0));}else{name=String.valueOf(Character.toUpperCase(stringBuilder.charAt(0))+stringBuilder.substring(1);}
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
betterIdea = userIdea.replaceFirst("[a-z]{1}", userIdea.substring(0,1).toUpperCase())
String toCamelCase(String string) {
    StringBuffer sb = new StringBuffer(string);
    sb.replace(0, 1, string.substring(0, 1).toUpperCase());
    return sb.toString();

}