大写第一个字符串

时间:2012-10-30 06:58:37

标签: java

  

可能重复:
  String replace method is not working

 public static String capitalise(String str)
    {
     if (str != null || !"".equals(str))
      {
       char chr=str.charAt(0);
       String check= Character.toString(chr);
       String check1= check.toUpperCase();
       char chr1=check1.charAt(0);
       str=str.replace(chr, chr1);
       return str;

     }
     else
     {
         System.out.println("Not a valid String");
     }
     return str;
 }

我想只对第一个字符进行大写,但它会将第一个字符大写,例如在upeercase string = shashank成为ShaShank之后...我该怎么办呢。

8 个答案:

答案 0 :(得分:2)

str.replace(chr, chr1);替换该字符串中char的所有出现。它会将您的所有s更改为S

用户substring将大写的第一个char与字符串的其余部分连接起来。


以下是评论中附加问题的简单解决方案。它将在单个(!)空格后大写每个字符。您可能希望增强它以允许多个空格或一般多个白名单。

public static void main(final String[] args) {

    String s = "some words";
    StringBuilder result = new StringBuilder();
    boolean capitalizeNextLetter = true;
    for (char c : s.toCharArray()) {
        if (capitalizeNextLetter) {
            result.append(Character.toUpperCase(c));
            capitalizeNextLetter = false;
        } else {
            if (c == ' ') {
                capitalizeNextLetter = true;
            }
            result.append(c);
        }
    }

    System.out.println(result.toString());

}

答案 1 :(得分:1)

如下:

public static String capitalize(String str) {
    return str.substring(0, 1).toUpperCase() + str.substring(1);
}

答案 2 :(得分:1)

为什么不简单地执行以下操作

str= Character.toUpperCase(str.charAt(0)) + str.substring(1)  

答案 3 :(得分:1)

试试这个

    public static String capitalise(String str)
    {
      if (str != null || !"".equals(str))
      {
        char chr = str.charAt(0);           
        String capsString  = Character.toString(chr).toUpperCase() + str.substring(1);
        return capsString;
      }
      else
      {
        System.out.println("Not a valid String");
      }
    return str;
}

答案 4 :(得分:0)

您可以使用以下内容。

char chr1=check1.charAt(0);
str = chr1 + str.substring(1);

答案 5 :(得分:0)

使用 ReplaceFirst 方法。

str=str.replaceFirst(check, chreck1);

replaceFirst

此外,您应将if条件更改为以下内容:

if (str != null && !"".equals(str))

这样就不会处理空字符串了。

答案 6 :(得分:0)

试试这个。只需换一行。

public static String capitalise(String str)
{
 if (str != null || !"".equals(str))
  {
   char chr=str.charAt(0);
   String check= Character.toString(chr);
   String check1= check.toUpperCase();       
   str=check1+str.substring(1);
   return str;
 }
 else
 {
     System.out.println("Not a valid String");
 }
 return str;
}

答案 7 :(得分:0)

在您的代码中,替换方法会将所有's'替换为'S' 因为char包含's';
试试这个答案

public static String capitalise(String str)
{
 String test = str.substring(0,1);
 test=test.toUpperCase();
 System.out.println(test);
 String new1= test+str.substring(1,str.length());       
 return new1;    
 }