Первый аргумент, переданный replaceAll, по-прежнему обрабатывается как регулярное выражение.Символ *
- это специальный символ, означающий, примерно, предыдущую вещь в строке (здесь: t
), может быть там 0 или более раз.То, что вы хотите сделать, это экранировать *
для регулярного выражения.Ваш первый аргумент должен выглядеть примерно так:
"__constant float\\* windowArray"
Второй аргумент, по крайней мере для ваших целей, по-прежнему просто обычная строка, поэтому вам не нужно экранировать *
там.
String result = testString.replaceAll("__constant float\\* windowArray", "__global float* windowArray");