Страницы

Поиск по вопросам

понедельник, 27 мая 2019 г.

Stream API Java

Ребят, хочу с помощью 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));

Комментариев нет:

Отправить комментарий