Мне необходимо ограничить количество символов в строке после '.'
до 6.
К примеру, из "0.123456789"
получить "0.123456"
.
Можно ли решить данную задачу используя Stream API?
Императивное решение у меня получилось такое:
static String f(String s) {
if (s.contains(".")) {
String dec = s.substring(s.indexOf('.'), s.length());
if (dec.length() < 7)
return s;
else {
String i = s.substring(0, s.indexOf('.'));
return i + dec.substring(0, 7);
}
}
else {
return s;
}
}
Решение с использованием indexOf
и substring
можно укоротить:
public static String f(String str)
{
final int maxCount = 6;
int index = str.indexOf('.') + maxCount + 1;
if (index == maxCount || index >= str.length())
{
return str;
}
return str.substring(0, index);
}
if
и 2 return
-a можно записать ещё короче:
return (index == maxCount || index >= str.length()) ? str : str.substring(0, index);
но это уже "на любителя", так как выражение получается достаточно длинное.
Добавить Stream символов строки, получаемый с помощью метода chars
, сюда можно, однако дабы это не получилось сверхсложно и сверхкостыльно, высчитывание индекса и возврат str
если символов после .
меньше 6
придётся оставить вне потока. В результате, по сути, просто код str.substring(0, index)
превращается в несколько строк кода:
public static String f(String str)
{
final int maxCount = 6;
int index = str.indexOf('.') + maxCount + 1;
if (index == maxCount || index >= str.length())
{
return str;
}
return str.chars()
.limit(index)
.collect(StringBuilder::new, StringBuilder::appendCodePoint, StringBuilder::append)
.toString();
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
ЗдравствуйтеКак добавить в меню Drawer Layout текст? Подробности на рисунке
Сделал горизонтальный RecyclerView внутри NestedScrollViewВ итоге при запуске активности если RecyclerView не торчит на определенную высоту, то он сам делает...
Не могу никак отправить простейший запрос к сервлету средствами jQueryНо при это если отправляю через форму, то все работает на ура
Необходимо задать анимацию нажатому элементу спискаЯ делаю это так: