English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основной учебник Java

Java 流程控制

Java 数组

Java 面向对象(I)

Java 面向对象(II)

Java 面向对象(III)

Обработка исключений Java

Java 列表(List)

Java Queue(队列)

Java Map集合

Java Set集合

Java Вход/Выход (I/O)

Java Reader/Writer

Другие темы Java

Метод replaceAll() в String Java с примерами использования

Java методы String (строка)

Метод replaceAll() в String Java заменяет каждый подстроку, соответствующий регулярному выражению, текстом, указанным в строке замены.

Синтаксис replaceAll() метода:

string.replaceAll(String regex, String replacement)

Параметры replaceAll()

replaceAll() метод имеет два параметра.

  • regex - Регулярное выражение для замены (может быть типичной строкой)

  • replacement - Подстрока, соответствующая шаблону, заменяется этой строкой

Возврат replaceAll()

  • replaceAll() метод возвращает новый строку, где каждое вхождение подстроки заменяется строкой замены (replacement).

Пример 1: Метод replaceAll() в Java

class Main {
    public static void main(String[] args) {
        String str1 = "aabbaaac";
        String str2 = "Learn223Java55@";
        // Регулярное выражение для последовательности чисел
        String regex = "\\d+";
        // Все出现的 "aa" заменить на "zz"
        System.out.println(str1.replaceAll("aa", "zz")); // zzbbzzac
        // Заменить цифры или последовательности цифр пробелом
        System.out.println(str2.replaceAll(regex, " ")); // Learn Java @
    {}
{}

В предыдущем примере "\\d+" это регулярное выражение, которое соответствует одному или нескольким числам.

Символы-эскейп в replaceAll()

replaceAll() метод может принимать регулярное выражение или типичную строку в качестве первого параметра. Это потому, что типичная строка本身就是 регулярным выражением.

В регулярных выражениях некоторые символы имеют особое значение. Эти символы-метки:

\ ^ $ . | ? * + {} [] ()

Если нужно匹配 подстроку, содержащую эти символы, можно использовать \ или использовать метод replace() для escaping этих символов.

// Программа для замены знака +
class Main {
    public static void main(String[] args) {
        String str1 = "+a-+b";
        String str2 = "Learn223Java55@";
        String regex = "\\+";
        // Заменить "+" на "#" с помощью метода replaceAll()
        //// Использовать replaceAll() для замены "+" на "#"
        System.out.println(str1.replaceAll("\\+", "#")); // #a-#b
        // Заменить "+" на "#" с помощью replace() 
        System.out.println(str1.replace("+", "#")); // #a-#b
    {}
{}

Как вы видите, когда мы используем метод replace(), нам не нужно эскапировать мета-символы. Для получения дополнительной информации посетите:Java String replace()

Если вам нужно заменить только первый соответствующий подстроку, пожалуйста, используйтеJava String replaceFirst()Метод.

Java методы String (строка)