Преобразование строки в модифицированный случай верблюда в Java или заголовок, как иначе называется

Я хочу преобразовать любую строку в измененный случай Camel или Title, используя некоторые предопределенные библиотеки, чем писать свои собственные функции.

Например, "HI tHiS is SomE Statement" - "HI tHiS is SomE Statement"

Regex или любая стандартная библиотека мне помогут.

Я нашел некоторые библиотечные функции в eclipse, например STRING.toCamelCase();, существует ли такая вещь?

Ответ 1

Я использовал ниже, чтобы решить эту проблему.

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

Спасибо Теду Хоппу за справедливое указание, что вопрос должен был быть TITLE CASE вместо модифицированного CAMEL CASE.

Случай Верблюда обычно не содержит пробелов между словами.

Ответ 2

Вы можете легко написать метод для этого:

  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();
}

Ответ 3

От commons-lang3

org.apache.commons.lang3.text.WordUtils.capitalizeFully(String str)

Ответ 4

Обратитесь:

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