2013-06-13 5 views
9

私は独自の関数を記述するよりも、定義済みのライブラリを使用して、変更されたCamelケースまたはTitleケースに変換します。Javaまたはタイトルケースで文字列をJavaまたはタイトルケースで変換する場合は、

例えば"HI tHiS is SomE Statement"

"Hi This Is Some Statement"に正規表現または任意の標準ライブラリには、私を助けます。

私は特定のライブラリ関数がeclipseのように見つかりましたSTRING.toCamelCase();そのようなものはありますか?

+2

おそらく[タイトルケース](http://en.wikipedia.org/wiki/Sentence_case#Title_case)を意味しますか? "[キャメルケース](http://en.wikipedia.org/wiki/CamelCase)"は通常、 "HiThisIsSomeStatement"(単語間の区切り文字なし)のようなものを指します。 –

+0

申し訳ありませんタイトルの大文字小文字はわかりません。 Ted Hoppに感謝します。私はタイトルケースを望む – takrishna

答えて

11

から、私はこの問題を解決するには、以下を使用していました。

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

当然の疑問ではなく、修正キャメルケースのタイトルCASEされている必要があることを指摘し、テッドのHoppに感謝します。

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

15

あなたは簡単にそれを行うためのメソッドを書くことができます。

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(word.substring(0, 1).toUpperCase()); 
      ret.append(word.substring(1).toLowerCase()); 
     } 
     if (!(ret.length()==init.length())) 
      ret.append(" "); 
    } 

    return ret.toString(); 
} 
+2

'word.substring(0、1).toUpperCase()'の代わりに 'Character.toUpperCase(word.charAt(0))'を実行することができます – fge

1

Refer:

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)); 
    } 
+0

このコードは2つの連続した'String'の空白(または' String'が空の場合)を返します。 'String'がnullの場合、' NullPointerException'をスローします。 –

+0

@FlorentBayleああ、更新された答えを見てみましょう! – NFE

関連する問題