- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
for(int i = 0; i < s.length(); i++)
{
String c = s.substring(i, i + 1);
if("_".equals(c) || " ".equals(c) || "-".equals(c))
{
capitalize = true;
continue;
}
if(c.toUpperCase().equals(c))
{
if(lastDecapitalized && !lastCapital)
capitalize = true;
lastCapital = true;
} else
{
lastCapital = false;
}
if(capitalize)
{
if(p == null || !p.equals("_"))
{
result.append(c.toUpperCase());
capitalize = false;
p = c;
} else
{
result.append(c.toLowerCase());
capitalize = false;
p = c;
}
} else
{
result.append(c.toLowerCase());
lastDecapitalized = true;
p = c;
}
}
guest 27.08.2009 11:32 # 0
Единственная проблема которую я вижу, это работа со строками длинны 1, вместо работы с char. Но учитывая, то что этот код выполняется один раз когда генерятся/проверяются мапинги, перфоманс не критичен.
asdqwezx 27.08.2009 12:48 # 0
я своим стажёрам за такой код сразу отсекаю гендорный фактор ;)
какая разница критично оно к скорости или нет, этот же код ещё потом поддерживать надо
неиспользование char это только первый пункт, второе это
if(capitalize)
{
if(p == null || !p.equals("_"))
{
result.append(c.toUpperCase());
capitalize = false;
p = c;
} else
{
result.append(c.toLowerCase());
capitalize = false;
p = c;
}
} else
{
result.append(c.toLowerCase());
lastDecapitalized = true;
p = c;
}
оно правильно пишется так
lastDecapitalized |= !capitalize;
result.append(capitalize || (p!= null && '_' == p) ? Character.toUpperCase(c) : Character.toLowerCase(c));
capitalize = false;
p = c;
или около того
guest 30.08.2009 23:25 # −1
asdqwezx 31.08.2009 16:09 # 0
проблема не в количестве строк, а в том что действия (p = c, capitalize = false;), которые ВСЕГДА выполняются за каким-то лядом прописаны во все ветки условий
Говногость 31.08.2009 16:36 # 0
asdqwezx 02.09.2009 13:21 # 0
что и было проделано, остальные изменения - дело вкуса (и наличия автоматического форматтера кода)
3oJloTou_nemyx 24.08.2021 21:06 # 0