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);

または、より複雑な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 に答える