我以前在Java中使用过string.replaceAll()都没有问题,但是我对此感到困惑。我以为只要没有“ /”或“ $”字符就可以了。这是我想做的事情:

String testString = "__constant float* windowArray";
String result = testString.replaceAll("__constant float* windowArray", "__global float* windowArray");


变量结果最终看起来与testString相同。我不明白为什么没有变化,请帮忙。

最佳答案

传递给replaceAll的第一个参数仍被视为正则表达式。 *字符是一个特殊字符,表示字符串中的前一个字符(此处为t)大致可以存在0次或多次。您要做的是对正则表达式转义*。您的第一个参数应该更像:

"__constant float\\* windowArray"


至少出于您的目的,第二个参数仍然只是普通字符串,因此您无需在其中转义*

String result = testString.replaceAll("__constant float\\* windowArray", "__global float* windowArray");

关于java - 为什么此Java String.replaceAll()代码不起作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4109925/

10-15 11:27