将起始字母改为大写字母

时间:2013-03-24 10:27:05

标签: java string capitalization

我正在使用Java,我有一个字符串,并希望将大写字母的第一个字母(每个单词以逗号分隔)。

我知道使用WordUtils.capitalize(str)这是可能的,但我拥有的内容如下。

String str = "companies,user,";

我知道splitWordutils会完成这项工作,但我正在寻找单行代码。


输出外观是一个字符串

Companies, User
^         ^^

或者

Companies,User
^         ^

而不是

Companies,user
^         ^

4 个答案:

答案 0 :(得分:3)

您可以单行试用以下内容!:

String str = "companies,user,";
        str = String.valueOf(str.charAt(0)).toUpperCase() + str.substring(1,str.indexOf(","))+
            str.substring(str.indexOf(","),str.indexOf(",") + 1) + String.valueOf(str.charAt(str.indexOf(",") + 1)).toUpperCase() + str.substring(str.indexOf(",") + 2);

答案 1 :(得分:1)

很简单:

String str = "companies,user,";
String strCaps = Character.toUpperCase(str.charAt(0)) + str.substring(1);

编辑:使其成为单行的唯一方法是使其成为方法,并使用该方法,如下所示:

public static void main(String[] args)
{
    String str = "companies,user,";
    System.out.println(capitaliseEach(str));
}

static String capitaliseEach(String string)
{
    StringBuilder sb = new StringBuilder();
    String[] split = string.split(",");
    for(int i = 0; i < split.length; i++)
    {
        if(split[i] != null && split[i].length() >= 2)
        {
            sb.append(Character.toUpperCase(split[i].charAt(0))).append(split[i].substring(0));
        }
        if((i + 1) < split.length)
        {
            sb.append(",");
        }
    }
    return sb.toString();
}

答案 2 :(得分:0)

intiCap的可重用方法

public class YarlagaddaSireeshTest{

    public static void main(String[] args) {
        String FinalStringIs="";
        String testNames="Sireesh,Yarlagadda";
        String[] name=testNames.split(",");

        for(String nameIs :name){
        FinalStringIs+=getIntiCapString(nameIs)+","
                ;
        }
        System.out.println("Final Result "+ FinalStringIs);

    }

    public static String getIntiCapString(String param) {
        if(param != null && param.length()>0){          
            char[] charArray = param.toCharArray(); 
            charArray[0] = Character.toUpperCase(charArray[0]); 
            return new String(charArray); 
        }else{
            return "";
        }
    }
}

答案 3 :(得分:0)

像clojure这样的功能语言非常适合这种情况。由于clojure是一种jvm语言,因此您可以从java中评估clojure代码。如果你绝望的话,即使是一个班轮:

RT.var("clojure.core", "eval")
      .invoke(RT.var("clojure.core", "read-string")
           .invoke(
              "(clojure.string/join \", \" " +
                "(map clojure.string/capitalize " +
                  "(clojure.string/split \"companies,user,\" #\",\")))"));

普通的clojure版本:

(clojure.string/join 
   ", " (map clojure.string/capitalize 
          (clojure.string/split "companies,user," #",")))
老实说,你永远不想那样做!但是,既然你正在寻找一个单行,我想这是值得的乐趣。