独自の関数を作成するよりも、事前に定義されたライブラリを使用して、文字列を変更されたキャメルケースまたはタイトルケースに変換したいと思います。
たとえば、_"HI tHiS is SomE Statement"
_から_"Hi This Is Some Statement"
_
正規表現または標準ライブラリが役立ちます。
STRING.toCamelCase();
のようなEclipseの特定のライブラリ関数が見つかりました。そのようなものは存在しますか?
この問題を解決するために以下を使用しました。
import org.Apache.commons.lang.StringUtils;
StringUtils.capitalize(MyString);
質問が修正されたCAMEL CASEではなくTITLE CASEであるべきであることを正しく指摘してくれたTed Hoppに感謝します。
通常、キャメルケースには単語間にスペースがありません。
それを行うメソッドを簡単に書くことができます:
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();
}
commons-lang から
org.Apache.commons.lang3.text.WordUtils.capitalizeFully(String str)
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));
}