RosettaCodeData/Task/Selectively-replace-multiple-instances-of-a-character-within-a-string/Java/selectively-replace-multiple-instances-of-a-character-within-a-string-1.java
2023-07-01 13:44:08 -04:00

13 lines
366 B
Java

int findNth(String s, char c, int n) {
if (n == 1) return s.indexOf(c);
return s.indexOf(c, findNth(s, c, n - 1) + 1);
}
String selectiveReplace(String s, Set... ops) {
char[] chars = s.toCharArray();
for (Set set : ops)
chars[findNth(s, set.old, set.n)] = set.rep;
return new String(chars);
}
record Set(int n, char old, char rep) { }