Как заменить символ в строке
[Как заменить символ в строке]
Строки в Java представляют собой последовательности символов. Причём строки в Java иммутабельны, то есть неизменяемы – вы не можете изменить строку после её создания. Значит ли это, что невозможно изменить символ в строке?
Метод replace
Так как строки в Java неизменяемы, был создан метод replace, который создаёт новый экземпляр строки с заменёнными символами. Рассмотрим следующий код:
String s1 = "Hello amazing World!";
System.out.println(s1);
String s2 = s1.replace(' ', '_');
System.out.println(s2);
Здесь мы сначала создали первую строковую переменную со значением "Hello amazing World!", а затем создали вторую переменную, в которую записали результат замены символа пробела на символ подчёркивания – "Hello_amazing_World!".
Помимо замены одного символа у нас есть возможность заменять сразу последовательности символов:
String s3 = s1.replace("Hello", "Goodbye");
System.out.println(s3);
Метод replaceAll
В отличие от метода replace, который заменяет последовательности символов, просто сравнивая их между собой, replaceAll делает замены, используя регулярные выражения:
String greeting = "Hello hello hello amazing World!";
String s4 = greeting.replaceAll("[Hh]ello", "goodbye");
System.out.println(s4);
Здесь мы заменяем все вхождения слов "Hello" и "hello" на слово "goodbye", используя регулярное выражение. С помощью метода replace нам пришлось бы производить замены дважды – для каждого слова.
В дополнение к методу replaceAll существует метод replaceFirst, который заменяет лишь первое вхождение:
String s5 = greeting.replaceFirst("[Hh]ello", "goodbye");
System.out.println(s5);
Чем отличаются replace от replaceAll
Различия между методами replace и replaceAll в том, что replace строго заменяет одну последовательность символов другой последовательностью, а replaceAll использует для замены регулярное выражение. В более простых случаях вам скорее всего подойдёт метод replace, а в более сложных – replaceAll, который позволит заменять сразу несколько вариаций символов.
Заключение
Так как строки в Java неизменяемы, заменить символ в строке можно, взяв исходную строку и создав новую строку, в которой будет заменён требуемый символ (или последовательность символов).
Как заменить символ в строке
Комментарии 0