#java #java_stream
Ребят, хочу с помощью Stream Api скрыть номер телефона, + 380 ** ** ** **3 примерно вот так, натолкните на верную мысль, как это можно правильно реализовать.
Ответы
Ответ 1
Как "правильно" реализовать с помощью 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));
Комментариев нет:
Отправить комментарий