web-dev-qa-db-ja.com

Javaまたは別の方法で呼ばれるタイトルケースの文字列を変更されたキャメルケースに変換する

独自の関数を作成するよりも、事前に定義されたライブラリを使用して、文字列を変更されたキャメルケースまたはタイトルケースに変換したいと思います。

たとえば、_"HI tHiS is SomE Statement"_から_"Hi This Is Some Statement"_

正規表現または標準ライブラリが役立ちます。

STRING.toCamelCase();のようなEclipseの特定のライブラリ関数が見つかりました。そのようなものは存在しますか?

14
takrishna

この問題を解決するために以下を使用しました。

import org.Apache.commons.lang.StringUtils;
StringUtils.capitalize(MyString);

質問が修正されたCAMEL CASEではなくTITLE CASEであるべきであることを正しく指摘してくれたTed Hoppに感謝します。

通常、キャメルケースには単語間にスペースがありません。

16
takrishna

それを行うメソッドを簡単に書くことができます:

  public static String toCamelCase(final String init) {
    if (init == null)
        return null;

    final StringBuilder ret = new StringBuilder(init.length());

    for (final String Word : init.split(" ")) {
        if (!Word.isEmpty()) {
            ret.append(Character.toUpperCase(Word.charAt(0)));
            ret.append(Word.substring(1).toLowerCase());
        }
        if (!(ret.length() == init.length()))
            ret.append(" ");
    }

    return ret.toString();
}
18
Florent Bayle

commons-lang から

org.Apache.commons.lang3.text.WordUtils.capitalizeFully(String str)
15
superEb

参照:

    static String toCamelCase(String s){
           String[] parts = s.split(" ");
           String camelCaseString = "";
           for (String part : parts){
               if(part!=null && part.trim().length()>0)
              camelCaseString = camelCaseString + toProperCase(part);
               else
                   camelCaseString=camelCaseString+part+" ";   
           }
           return camelCaseString;
        }

        static String toProperCase(String s) {
            String temp=s.trim();
            String spaces="";
            if(temp.length()!=s.length())
            {
            int startCharIndex=s.charAt(temp.indexOf(0));
            spaces=s.substring(0,startCharIndex);
            }
            temp=temp.substring(0, 1).toUpperCase() +
            spaces+temp.substring(1).toLowerCase()+" ";
            return temp;

        }
  public static void main(String[] args) {
     String string="HI tHiS is   SomE Statement";
     System.out.println(toCamelCase(string));
  }
1
NFE