#java
Вопрос:
Привет, я новичок в java, и у меня есть вопрос,
Я пытаюсь заменить строку » 22(S)» на » 22(I)», но по какой-то причине первая замена не заменяет строку.
Вот мой код:
public class tes {
public static void main(String[] args) {
int y = 22;
String x = " 22(S)";
x = x.replaceFirst(" " y "(S)", " " y "(I)");
System.out.println(x);
}
}
Хотя я знаю, что могу сделать x.replaceFirst(«S»,»I»), я хочу понять, почему это все еще создает 22(Ы) с моим текущим кодом. Спасибо.
Ответ №1:
Потому (
что и )
группируют операторы в регулярном выражении. Вам нужно избежать их в течение срока матча. Нравится,
x = x.replaceFirst(" " y "\(S\)", " " y "(I)");
И я получаю
22(I)
без каких-либо других изменений.
Ответ №2:
public class Replace {
public static void main(String[] args) {
int y = 22;
String x = " 22(S)";
x = x.replaceAll(" " y "\(S\)", " " y "(I)");
System.out.println(x);
}
}
Используя replaceAll
также, мы можем заменить все буквы S на I