-3

I have this exercise. Why not work with replaceAll? I have an error: String index out of range: 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);


    }

}
Madhawa Priyashantha
  • 9,633
  • 7
  • 33
  • 60

2 Answers2

3

replaceAll works with regular expressions. In the replacAll method, $ is a reserved character used to reference groups defined in the regular expression given as first parameter, so you need to escape it.

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

DEMO

BackSlash
  • 21,927
  • 22
  • 96
  • 136
1

You need to escape characters which are use in regular expression, try following:

String nuovaz=x.replaceAll("i", "!");
String nuova2z=nuovaz.replaceAll("s", "\\$");
Darshan Lila
  • 5,772
  • 2
  • 24
  • 34