Заменить фразу в строке

Есть строка, к примеру Номер кредитной карты <4141 4141 4141> 8188. Нужно изменить всё, что указано в <> на ****.


Ответы (1 шт):

Автор решения: Имя Фамилия
  1. s = s.replaceAll("<.*>", "<****>");
  2. s = s.replaceAll("(?<=<).*(?=>), "****");
String s = "<4141 4141 4141> 8188";
int index1 = 0;
while (s.charAt(index1) == '<')
    index1++;
int index2 = index1 + 1;
while (s.charAt(index2) != '>')
    index2++;
s = s.substring(0, index1) + "****" + s.substring(index2);
String s = "<4141 4141 4141> 8188";
StringBuilder sb = new StringBuilder(s);
boolean b = false;
for (int i = 0, l = 1; i < sb.length(); i++) {
    if (sb.charAt(i) == '<')
        b = true;
    else if (sb.charAt(i) == '>')
        break;
    else if (b)
        if (l > 4) {
            sb = new StringBuilder(sb.substring(0, i) + sb.substring(i + 1));
            i--;
        } else {
            sb.setCharAt(i, '*');
            l++;
        }
}
s = sb.toString();
→ Ссылка