1

私はJavaを使用していて、文字列があり、単語の最初の文字を大文字にしたい(各単語はコンマで区切られています)。

使用WordUtils.capitalize(str)は可能ですが、以下のとおりです。

String str = "companies,user,";

私はその仕事を知ってsplitおり、Wordutilsこれからもやりますが、ワンライナーを探しています。


出力の見た目は1つの文字列です

Companies, User
^         ^^

また

Companies,User
^         ^

ではなく

Companies,user
^         ^
4

4 に答える 4

3

次のことを1行で試すことができます!:

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);
于 2013-03-24T11:03:19.180 に答える
1

非常に単純に:

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

編集: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();
}
于 2013-03-24T10:30:36.040 に答える
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 "";
        }
    }
}
于 2013-03-24T10:49:39.830 に答える
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," #",")))

正直なところ、あなたはそれをしたくないでしょう!しかし、あなたはワンライナーを探しているので、それは楽しむ価値があると思います。

于 2013-03-24T11:14:50.143 に答える