Ребят, хочу с помощью Stream Api скрыть номер телефона, + 380 ** ** ** **3 примерно вот так, натолкните на верную мысль, как это можно правильно реализовать.
Ответ
Как "правильно" реализовать с помощью Stream API я не знаю. Думаю, что никак.
Но можно, например вот так:
AtomicInteger index = new AtomicInteger(0);
String str = "+ 380 43 34 34 343";
str.chars()
.mapToObj(i-> (index.getAndIncrement() >= 6 && index.get() < 18)
&& (i >= 49 && i <= 57) ? '*' : (char)i)
.reduce(new StringBuilder(),
(a, b) -> a.append(b),
(a,b) -> a.append(b)).toString();
Но, на мой взгляд, лучше всего вашу задачу решить без Stream API, например вот так:
String str = "+ 380 43 34 34 343";
str = str.substring(0, 5).concat(" ** ** ** **").concat(str.substring(17,18));
Комментариев нет:
Отправить комментарий