Как я могу заменить символы в строке при совпадении с регистром исходной строки? - PullRequest
0 голосов
/ 19 октября 2018

в основном я хочу:

HellO MY NamE IS BilL

скажем, мы хотим заменить имя тегом, чтобы получился вывод:

HellO MY tag IS BiLL

Я видел сравнения на этом сайте и общий методсделать всю строку строчной, затем выполнить сравнение, но если я сделаю это, то потеряю значение регистра исходной строки.Вот более широкий пример:

text=text.replaceAll(words, replacementWords);

также .compareToIgnoreCase(str) не работает, потому что сравнивает строки

Ответы [ 2 ]

0 голосов
/ 19 октября 2018

Это будет искать «имя» без учета регистра и заменять его на «тег»: -

str = str.replaceAll("(?i)name", "tag");
0 голосов
/ 19 октября 2018

Попробуйте выполнить замену всех без учета регистра:

String input = "HellO MY NamE IS BilL";
String output = input.replaceAll("(?i)\\bname\\b", "tag");
System.out.println(output);

HellO MY tag IS BilL

При поиске мы также должны поместить границы слов вокруг name, чтобы избежать неправильной замены, например, выполнить замену на surname,что не то, что мы хотим.

...