Замена подстрок в Java

JavaJavaBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии мы научимся заменять подстроки в String с использованием языка программирования Java. Мы будем использовать разные методы, доступные в Java, для замены одного/нескольких символов или подстрок. В конце мы четко поймем, как реализовать эти методы в коде на Java.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/BasicSyntaxGroup(["Basic Syntax"]) java(("Java")) -.-> java/StringManipulationGroup(["String Manipulation"]) java(("Java")) -.-> java/FileandIOManagementGroup(["File and I/O Management"]) java(("Java")) -.-> java/ConcurrentandNetworkProgrammingGroup(["Concurrent and Network Programming"]) java(("Java")) -.-> java/SystemandDataProcessingGroup(["System and Data Processing"]) java/BasicSyntaxGroup -.-> java/output("Output") java/StringManipulationGroup -.-> java/strings("Strings") java/StringManipulationGroup -.-> java/stringbuffer_stringbuilder("StringBuffer/StringBuilder") java/StringManipulationGroup -.-> java/regex("RegEx") java/FileandIOManagementGroup -.-> java/files("Files") java/FileandIOManagementGroup -.-> java/create_write_files("Create/Write Files") java/ConcurrentandNetworkProgrammingGroup -.-> java/working("Working") java/SystemandDataProcessingGroup -.-> java/string_methods("String Methods") subgraph Lab Skills java/output -.-> lab-117449{{"Замена подстрок в Java"}} java/strings -.-> lab-117449{{"Замена подстрок в Java"}} java/stringbuffer_stringbuilder -.-> lab-117449{{"Замена подстрок в Java"}} java/regex -.-> lab-117449{{"Замена подстрок в Java"}} java/files -.-> lab-117449{{"Замена подстрок в Java"}} java/create_write_files -.-> lab-117449{{"Замена подстрок в Java"}} java/working -.-> lab-117449{{"Замена подстрок в Java"}} java/string_methods -.-> lab-117449{{"Замена подстрок в Java"}} end

Создайте файл на Java

Создадим файл на Java для записи и выполнения кода. Откройте терминал и перейдите в каталог проекта. Создайте новый файл с именем SubstringReplace.java с использованием следующей команды:

touch SubstringReplace.java

Откройте файл в предпочитаемом текстовом редакторе.

Замена отдельных символов

Мы можем использовать метод replace(), чтобы заменить одно вхождение символа в строке. Вот пример:

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "hello world!";
        System.out.println("Original String: " + originalString);
        // Замена отдельного символа
        String newString = originalString.replace('l', 'L');
        System.out.println("New String: " + newString);
    }
}

В приведенном выше примере мы заменяем символ l в нижнем регистре на символ L в верхнем регистре в исходной строке.

Для компиляции и запуска кода используйте следующие команды:

javac SubstringReplace.java
java SubstringReplace

В результате должно быть выведено следующее:

Original String: hello world!
New String: heLLo worLd!

Замена подстрок

Мы можем использовать метод replace(), чтобы заменить все вхождения подстроки на новую подстроку. Вот пример:

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Original String: " + originalString);
        // Замена подстроки
        String newString = originalString.replace("the", "a");
        System.out.println("New String: " + newString);
    }
}

В приведенном выше примере мы заменяем все вхождения подстроки "the" на подстроку "a".

Для компиляции и запуска кода используйте те же команды, что и в шаге 2.

В результате должно быть выведено следующее:

Original String: the quick brown fox jumps over the lazy dog
New String: a quick brown fox jumps over a lazy dog

Замена первого вхождения подстроки

Мы можем использовать метод replaceFirst(), чтобы заменить первое вхождение подстроки на новую подстроку. Вот пример:

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Original String: " + originalString);
        // Замена первого вхождения подстроки
        String newString = originalString.replaceFirst("the", "a");
        System.out.println("New String: " + newString);
    }
}

В приведенном выше примере мы заменяем первое вхождение подстроки "the" на подстроку "a".

Для компиляции и запуска кода используйте те же команды, что и в шаге 2.

В результате должно быть выведено следующее:

Original String: the quick brown fox jumps over the lazy dog
New String: a quick brown fox jumps over the lazy dog

Замена символов с использованием регулярных выражений

Мы можем использовать регулярные выражения для замены символа на шаблон. Вот пример:

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Original String: " + originalString);
        // Замена символов с использованием регулярных выражений
        String newString = originalString.replaceAll("[aeiou]", "");
        System.out.println("New String: " + newString);
    }
}

В приведенном выше примере мы удаляем все гласные из исходной строки с использованием регулярного выражения.

Для компиляции и запуска кода используйте те же команды, что и в шаге 2.

В результате должно быть выведено следующее:

Original String: the quick brown fox jumps over the lazy dog
New String: th qck brwn fx jmps vr th lzy dg

Замена нескольких символов с использованием регулярных выражений

Мы можем использовать регулярные выражения для замены нескольких символов на шаблон. Вот пример:

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Original String: " + originalString);
        // Замена нескольких символов с использованием регулярных выражений
        String newString = originalString.replaceAll("[aeiouAEIOU]", "");
        System.out.println("New String: " + newString);
    }
}

В приведенном выше примере мы удаляем все гласные (как в нижнем, так и в верхнем регистре) из исходной строки с использованием регулярного выражения.

Для компиляции и запуска кода используйте те же команды, что и в шаге 2.

В результате должно быть выведено следующее:

Original String: the quick brown fox jumps over the lazy dog
New String: th qck brwn fx jmps vr th lzy dg

Замена подстрок с использованием регулярных выражений

Мы можем использовать регулярные выражения для замены подстроки на шаблон. Вот пример:

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Original String: " + originalString);
        // Замена подстрок с использованием регулярных выражений
        String newString = originalString.replaceAll("\\w+", "a");
        System.out.println("New String: " + newString);
    }
}

В приведенном выше примере мы заменяем все слова в исходной строке на букву a с использованием регулярного выражения.

Для компиляции и запуска кода используйте те же команды, что и в шаге 2.

В результате должно быть выведено следующее:

Original String: the quick brown fox jumps over the lazy dog
New String: a a a a a a a a a

Замена нескольких вхождений подстроки с использованием регулярных выражений

Мы можем использовать регулярные выражения для замены всех вхождений подстроки на шаблон. Вот пример:

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Original String: " + originalString);
        // Замена всех вхождений подстроки с использованием регулярных выражений
        String newString = originalString.replaceAll("the", "a");
        System.out.println("New String: " + newString);
    }
}

В приведенном выше примере мы заменяем все вхождения подстроки "the" на букву a с использованием регулярного выражения.

Для компиляции и запуска кода используйте те же команды, что и в шаге 2.

В результате должно быть выведено следующее:

Original String: the quick brown fox jumps over the lazy dog
New String: a quick brown fox jumps over a lazy dog

Использование StringBuilder для замены подстрок

Мы можем использовать класс StringBuilder для замены подстрок более эффективным способом. Вот пример:

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Original String: " + originalString);
        // Использование StringBuilder для замены подстрок
        StringBuilder stringBuilder = new StringBuilder(originalString);
        stringBuilder.replace(0, 3, "a");
        String newString = stringBuilder.toString();
        System.out.println("New String: " + newString);
    }
}

В приведенном выше примере мы используем класс StringBuilder для замены первых 3 символов в строке на букву a.

Для компиляции и запуска кода используйте те же команды, что и в шаге 2.

В результате должно быть выведено следующее:

Original String: the quick brown fox jumps over the lazy dog
New String: a quick brown fox jumps over the lazy dog

Использование StringBuffer для замены подстрок

Похожим на StringBuilder способом мы можем использовать класс StringBuffer для замены подстрок более эффективным образом. Единственное отличие заключается в том, что StringBuffer является потокобезопасным. Вот пример:

public class SubstringReplace {
    public static void main(String[] args) {
        String originalString = "the quick brown fox jumps over the lazy dog";
        System.out.println("Original String: " + originalString);
        // Использование StringBuffer для замены подстрок
        StringBuffer stringBuffer = new StringBuffer(originalString);
        stringBuffer.replace(0, 3, "a");
        String newString = stringBuffer.toString();
        System.out.println("New String: " + newString);
    }
}

В приведенном выше примере мы используем класс StringBuffer для замены первых 3 символов в строке на букву a.

Для компиляции и запуска кода используйте те же команды, что и в шаге 2.

В результате должно быть выведено следующее:

Original String: the quick brown fox jumps over the lazy dog
New String: a quick brown fox jumps over the lazy dog

Резюме

В этом практическом занятии мы узнали, как заменить подстроки в String с использованием языка программирования Java. Мы обсудили несколько методов, доступных в Java для замены одного/нескольких символов или подстрок. Мы также узнали, как использовать регулярные выражения и классы StringBuilder/StringBuffer для более эффективной замены подстрок. Используя эти знания, вы можете легко манипулировать строками в своих Java-программах.