java替换e replaceAll。 ReplaceAll不起作用

时间:2014-12-29 12:09:58

标签: java replace replaceall

我有这个练习。为什么不使用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);


    }

}

2 个答案:

答案 0 :(得分:3)

replaceAll适用于正则表达式。在replacAll方法中,$是一个保留字符,用于引用作为第一个参数给出的正则表达式中定义的组,因此您需要将其转义。

String nuova2z=nuovaz.replaceAll("s", "\\$");

DEMO

答案 1 :(得分:1)

您需要转义正则表达式中使用的字符,请尝试以下操作:

String nuovaz=x.replaceAll("i", "!");
String nuova2z=nuovaz.replaceAll("s", "\\$");