Метод Java String replaceAll () заменяет каждую подстроку, которая соответствует регулярному выражению строки, указанным текстом.
Синтаксис replaceAll()
метода:
string.replaceAll(String regex, String replacement)
Здесь строка - это объект String
класса.
replaceAll () Параметры
replaceAll()
Метод принимает два параметра.
- regex - регулярное выражение (может быть обычной строкой), которое необходимо заменить
- замена - соответствующие подстроки заменяются этой строкой
replaceAll () Возвращаемое значение
replaceAll()
Метод возвращает новую строку , в которой каждое вхождение совпадающей подстроки заменяется на замену строки.
Пример 1: Java String replaceAll ()
class Main ( public static void main(String() args) ( String str1 = "aabbaaac"; String str2 = "Learn223Java55@"; // regex for sequence of digits String regex = "\d+"; // all occurrences of "aa" is replaceAll with "zz" System.out.println(str1.replaceAll("aa", "zz")); // zzbbzzac // replace a digit or sequence of digits with a whitespace System.out.println(str2.replaceAll(regex, " ")); // Learn Java @ ) )
В приведенном выше примере "\d+"
- это регулярное выражение, которое соответствует одной или нескольким цифрам. Чтобы узнать больше, посетите Java regex.
Экранирование символов в replaceAll ()
replaceAll()
Метод может принимать регулярное выражение или типичную строку в качестве первого аргумента. Это потому, что типичная строка сама по себе является регулярным выражением.
В регулярном выражении есть символы, которые имеют особое значение. Эти метасимволы:
$. | ? * + () () ()
Если вам нужно сопоставить подстроку, содержащую эти метасимволы, вы можете либо экранировать эти символы, либо использовать
replace()
метод.
// Program to replace the + character class Main ( public static void main(String() args) ( String str1 = "+a-+b"; String str2 = "Learn223Java55@"; String regex = "\+"; // replace "+" with "#" using replaceAll() // need to espace "+" System.out.println(str1.replaceAll("\+", "#")); // #a-#b // replace "+" with "#" using replace() System.out.println(str1.replace("+", "#")); // #a-#b ) )
Как видите, когда мы используем replace()
метод, нам не нужно экранировать метасимволы. Чтобы узнать больше, посетите: Java String replace ()
Если вам нужно заменить только первое вхождение соответствующей подстроки, используйте метод Java String replaceFirst ().