Comments 10
ну вот честное слово, ну что здесь такого, почему Вы решили написать статью?
можно ведь просто опубликовать на github или написать в блоге, или как вариант есть сайты со сниппетами, могли бы добавить туда
можно ведь просто опубликовать на github или написать в блоге, или как вариант есть сайты со сниппетами, могли бы добавить туда
+3
Согласен, не говоря уже о том что туже функцию можно переписать раза в два короче и проще, как-то так:
ИМХО, таким вещам лучше на сайтах с сниппетами, потому что если каждый будет постить на хабре каждую свою удачную на его взгляд функцию…
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();
}
ИМХО, таким вещам лучше на сайтах с сниппетами, потому что если каждый будет постить на хабре каждую свою удачную на его взгляд функцию…
+2
Поиск по гуглу выдавал говнокод, заточенный под конкретный формат исходной строки. А запросов таких достаточно много.
Искать нечто подобное по гитхабу считаю извращением, и даже мысль не приходила искать подобное там.
Сайты со сниппетами… Не пользовался как-то раньше, можете показать пример?
PS: И, да, мнения разделились. Минусов ровно столько же, сколько и звезд… Значит кому-то да пригодится.
Искать нечто подобное по гитхабу считаю извращением, и даже мысль не приходила искать подобное там.
Сайты со сниппетами… Не пользовался как-то раньше, можете показать пример?
PS: И, да, мнения разделились. Минусов ровно столько же, сколько и звезд… Значит кому-то да пригодится.
0
->тысячи их. Гуглите на английском и будет Вам счастье. Достаточно было запроса snippet sites.
+2
А вы не думали пополнить класс org.apache.commons.lang3.StringUtils вашим методом?
+1
Меня всегда удивляло как в одном человеке может одновременно уживаться усердие написать комментарии типа вот этих:
и потом взять и нагородить многоэтажное совершенно нечитабельное условие типа такого:
// Проходимся по всем символам полученной строки
// Устанавливаем флаги.
// Возвращаем полученный результат.
и потом взять и нагородить многоэтажное совершенно нечитабельное условие типа такого:
!Character.isLetterOrDigit(currentChar) ||
(
(
(
Character.isLetter(previousChar) &&
Character.isLowerCase(previousChar)
) ||
Character.isDigit(previousChar)
) &&
Character.isLetter(currentChar) &&
Character.isUpperCase(currentChar)
)
+6
Подробные комменты я пишу редко, в основном комментами отделяю смысловые «блоки» кода, как тут. Это довольно популярная практика…
А условие вполне себе читабельное. Скобочки вынес, на строки разбил, части условия понятны и по названию.
А условие вполне себе читабельное. Скобочки вынес, на строки разбил, части условия понятны и по названию.
-5
Вы путаете «читаемость кода» и «читаемость намерений». Код обычно читают с одной единственной целью — понять намерения автора. Форматирование и выделение блоков безусловно помогает, но это далеко не самое важное. Я легко могу прочитать условие, которое вы написали. Даже если бы вы его не отформатировали, мне ничего не стоило бы отформатировать его за вас — это тупая механическая работа. Что намного сложнее — понять ваше намерение: почему условие именно такое, что именно будет означать если условие вычисляется в true. Субъективно, хороший код как минимум даёт ответ на этот вопрос без вмешательства автора, а очень хороший — исключает возникновение такого вопроса.
+4
Не могу понять, зачем было писать целую статью, будто про теорему Ферма. Где здесь проблематичность, которую хабравчане могли обсуждать?
+2
Sign up to leave a comment.
Универсальная функция toCamelCase() для Java