Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
public static String toCamelCase(String string, boolean firstWordToLowerCase) {
boolean isPrevLowerCase = false, isNextUpperCase = !firstWordToLowerCase;
StringBuilder result = new StringBuilder();
for (int i = 0; i < string.length(); i++) {
char currentChar = string.charAt(i);
if(!Character.isLetterOrDigit(currentChar)) {
isNextUpperCase = result.length() > 0 || isNextUpperCase;
} else {
result.append(
isNextUpperCase? Character.toUpperCase(currentChar) :
isPrevLowerCase ? currentChar: Character.toLowerCase(currentChar)
);
isNextUpperCase = false;
}
isPrevLowerCase = result.length() > 0 && Character.isLowerCase(currentChar);
}
return result.toString();
}
// Проходимся по всем символам полученной строки
// Устанавливаем флаги.
// Возвращаем полученный результат.
!Character.isLetterOrDigit(currentChar) ||
(
(
(
Character.isLetter(previousChar) &&
Character.isLowerCase(previousChar)
) ||
Character.isDigit(previousChar)
) &&
Character.isLetter(currentChar) &&
Character.isUpperCase(currentChar)
)
Универсальная функция toCamelCase() для Java