我有这个练习。为什么不使用replaceAll?我有一个错误:字符串索引超出范围:1
public class e3 {
public static void main(String[] args) {
String x="Sessione successiva";
String nuova=x.replace("i", "!");
String nuova2=nuova.replace("s", "$");
String nuova3=nuova2.replace("e", "&");
System.out.println(nuova3);
//replaceAll
String nuovaz=x.replaceAll("i", "!");
String nuova2z=nuovaz.replaceAll("s", "$");
String nuova3z=nuova2.replaceAll("e", "&");
System.out.println(nuova3z);
}
}
答案 0 :(得分:3)
replaceAll
适用于正则表达式。在replacAll
方法中,$
是一个保留字符,用于引用作为第一个参数给出的正则表达式中定义的组,因此您需要将其转义。
String nuova2z=nuovaz.replaceAll("s", "\\$");
答案 1 :(得分:1)
您需要转义正则表达式中使用的字符,请尝试以下操作:
String nuovaz=x.replaceAll("i", "!");
String nuova2z=nuovaz.replaceAll("s", "\\$");