当我做

String s = "2r2";
System.out.println(s.replaceFirst("2r2","4"));


它可以打印4,但是当我这样做时

String s = "2^2";
System.out.println(s.replaceFirst("2^2","4"));


它不起作用(打印2 ^ 2),为什么?我该怎么办?

最佳答案

replaceFirst使用正则表达式语法,其中^具有特殊含义(根据所使用的修饰符,它表示字符串或行的开头)。

您需要像^那样逃避"2\\^2",或使用Pattern.quote("2^2")为您简化生活。

因此您的代码应该更像:

String s = "2^2";
System.out.println(s.replaceFirst(Pattern.quote("2^2"),"4"));

关于java - String.replaceFirst错误? java ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43968109/

10-10 04:25