Попробуйте это:
String test = myst.replace(".", "A");
разница:
replaceAll()
интерпретирует шаблон как регулярное выражение, replace()
интерпретирует его как строковый литерал.
Вот соответствующий исходный код от java.lang.String
(с отступом и комментарием от меня):
public String replaceAll(String regex, String replacement) {
return Pattern.compile(regex)
.matcher(this)
.replaceAll(replacement);
}
public String replace(CharSequence target, CharSequence replacement) {
return Pattern.compile(
target.toString(),
Pattern.LITERAL /* this is the difference */
).matcher(this)
.replaceAll(
Matcher.quoteReplacement(
/* replacement is also a literal,
not a pattern substitution */
replacement.toString()
));
}
Справка: