Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jvSpRgPNEC 83 of 322 menu
◀ ▶

Доллар в строке замены в Java

В строке замены для replaceAll символ $ имеет специальный смысл: он начинает ссылку на группу, например $1. Поэтому обычный знак доллара в Java нужно экранировать обратным слешем:

import java.util.regex.Matcher; import java.util.regex.Pattern; public class Main { public static void main(String[] args) { String txt = "price 10"; Pattern pattern = Pattern.compile("(\\d+)"); String withGroup = pattern.matcher(txt).replaceAll("cost $1"); String withDollar = pattern.matcher(txt).replaceAll("cost \\$1"); System.out.println(withGroup); System.out.println(withDollar); } }

Когда строка замены приходит из переменной и ее нужно вставить буквально, безопаснее применить Matcher.quoteReplacement. Тогда доллар и обратный слеш не будут считаться спецсимволами:

import java.util.regex.Matcher; import java.util.regex.Pattern; public class Main { public static void main(String[] args) { String txt = "price 10"; String replacement = "cost $1"; Pattern pattern = Pattern.compile("\\d+"); String res = pattern.matcher(txt) .replaceAll(Matcher.quoteReplacement(replacement)); System.out.println(res); } }

Дана строка:

String txt = "item 15";

Замените число на текст "$15" и выведите результат.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить