求高人!求代码!在java的字符串中如何替换指定位置的字符

比如:

String s="if i have to go, go,go,do you remember me?"
我想把第12个字符替换成'a'
s.charAt(i)='a';//报错(i是哪个位置)
请问前辈如何实现?

还有,替换指定位置的字符串呢?(比如,想把第二个‘go’替换'do')
String s = "if i have to go, go,go,do you remember me?";
char[] cs = s.toCharArray();
cs[12] = 'A';
System.out.println(new String(cs));
至于替换指仿粗定备卜镇位置的字符串吧,用弊毕切取吧

charAt()是返回指定下标的char怎么还能符值呢,错是应该的
可以用握启汪 StringBuilder 这个类试试,里面有一旁亩个接口replace,段仔如下
StringBuilder sb = new StringBuilder("sssaaa");
sb.replace(start, end, str);
你可以这样实现嘛!
String s="if i have to go, go,go,do you remember me?"
我想把第12个字符替换成'升码a'
s.replace(s.charAt(i),'a');

同理吵信哪,
String x ="go";
s.replace(s.substring(s.charAt(s.indexof(x)),s.charAt(s.lastindexof(x))));
不过这样坦信可能会出问题,需要仔细考虑,
String str = "13012345678";
System.out.println(str.replace(str.subSequence(3,9),"******"侍耐困));
可以直接老念将字符串的第4位到倒数第三位全部替换亩源成*
将4个1替空睁迅换成4个3
String s = "001111222";
String s1 = s.replaceFirst("(?<斗此=\\早颤S{2}).{4}", "3333");
System.out.println(s1);