java - String#replaceFirst 似乎无法随机工作
问题描述
我有一个字符串,我尝试用它替换 %s 的第一次出现。
例如:
"$%s".replaceFirst("%s", "10");
返回 10 美元,但
"&cYou do not have %s!".replaceFirst("%s", "$10");
抛出 java.lang.IndexOutOfBoundsException: No group 1
我有打印语句,我知道 100% 是什么引发了错误,这就是语句中的内容。
解决方案
包含$
前缀的替换被视为组匹配器(即它尝试仅替换匹配的组。
所以$
需要通过以下方式进行转义\\
:
System.out.println("&cYou do not have %s!".replaceFirst("%s", "\\$10"));
推荐阅读
- python - 有没有更简单的方法来输入多个名称并相应地存储它们?
- chisel - chisel中如何自由给vec类型变量赋值?
- mnist - holoviews 不显示 PIL 图像格式
- react-native - React Native Invariant Violation 错误,但似乎没有任何问题
- linux - 在linux中打开带有特殊字符的文件
- python - 类实例化和方法的 pytest 模拟异常
- python - 在键是元组的字典中,删除在特定位置没有特定值的所有键
- jenkins - Jenkins文件中单个阶段内的多个when子句
- python - 无法从 NumSharp.NDArray 转换为 OpenCvSharp.InputArray
- android - 您将如何为不同的环境(测试、QA、生产)分发相同的移动应用程序?