我有一个字符串,我尝试用它替换第一次出现的 %s。
例如:
"$%s".replaceFirst("%s", "10");
返回 10 美元,但是
"&cYou do not have %s!".replaceFirst("%s", "$10");
抛出 java.lang.IndexOutOfBoundsException:没有组 1
我有 print 语句,我 100% 知道这就是抛出错误的原因,这就是语句中的内容。
最佳答案
包含 $
前缀的替换被视为组匹配器(即它尝试仅替换匹配的组。
因此 $
需要用 \\
进行转义:
System.out.println("&cYou do not have %s!".replaceFirst("%s", "\\$10"));
关于java - String#replaceFirst 似乎不随机工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60123630/