Разделить заглавными буквами в Java

Мне нужно разбить строку по заглавным буквам и желательно перевести последующие слова в нижний регистр;

Например

ThisIsAString становится Это строка

Спасибо


person Ben Taliadoros    schedule 10.02.2012    source источник
comment
Вы скопировали вопрос из stackoverflow.com/questions/3752636/   -  person Õzbek    schedule 10.02.2012
comment
дайте мне кодез получает голосование?   -  person skaffman    schedule 10.02.2012
comment
возможный дубликат Как преобразовать CamelCase в человеческий -читаемые имена в Java?   -  person Andrew    schedule 10.02.2012
comment
Нет, это не дубликат чего-либо, спасибо   -  person Ben Taliadoros    schedule 12.02.2012
comment
Отвечает ли это на ваш вопрос? Как преобразовать CamelCase в удобочитаемые имена на Java?   -  person Pino    schedule 20.05.2021


Ответы (3)


Похоже, вы хотите преобразовать верблюжий регистр в читаемый язык. Так ли это?

Если это так, это решение должно вам подойти — Как преобразовать CamelCase в удобочитаемые имена в Java?

Если вы хотите, чтобы последующие слова были в нижнем регистре, вам придется разделить, чтобы справиться с этим самостоятельно.

person I82Much    schedule 10.02.2012

Если вам нужна строка, вы можете сделать это:

String str = "ThisIsAString";
String res = "";
for(int i = 0; i < str.length(); i++) {
   Character ch = str.charAt(i);
     if(Character.isUpperCase(ch))
       res += " " + Character.toLowerCase(ch);
     else
       res += ch;
}
person Figus    schedule 10.02.2012

Общее количество слов в слове с верблюжьим регистром, использующем идентификацию символьного регистра

Решение: проблема с верблюжьим делом Hacker Rank: https://www.hackerrank.com/challenges/camelcase/problem

public static void camelCaseWordWithIndexs(String s) {


    int startIndex = 0;
    int endIndex = 0;

    for (int i = 0; i < s.length(); i++) {
        if (Character.isUpperCase(s.charAt(i)) || i == s.length() - 1) {
            startIndex = endIndex;
            endIndex = i != s.length() - 1 ? i : i + 1;
            System.out.println(s.substring(startIndex, endIndex));
        }
    }


}
person Arpan Saini    schedule 28.07.2019