java - 如何用单个值替换出现的数字?
问题描述
我有以下代码
String str = "/admin/3138/misc";
boolean isNumbers = str.chars().anyMatch(Character::isDigit);
System.out.println(isNumbers);
if (isNumbers) {
str = str.replaceAll("[0-9]", "%d");
System.out.println("->" + str);
}
这给出了输出:
admin/%d%d%d%d/misc
我需要:
admin/%d/misc
因此,如果找到的数字只替换为%d
一个,而不是每个数字,则从字符串中替换。
解决方案
您需要将您的正则表达式更改为"[0-9]+"
if (isNumbers) {
str = str.replaceAll("[0-9]+", "%d");
System.out.println("->" + str);
}
Oracle 的文档:量词
推荐阅读
- c# - 是否可以在一行中确定字符串是否位于字符串数组中的任何位置?
- python - Numpy删除重复行而不考虑行元素的位置
- jmeter - 使用 JMeter 模拟获取网页
- assembly - 为什么 clang 要用这么长的代码序列来构建一个 64 位的常量?
- git - git 提交文件中的 '>8' 是什么意思?
- python - 将多行从 python 控制台复制到主脚本会引入换行符“...”
- django - 将多个字符串存储到 Django 模型中的单个字段
- api - 如何在 LinkedIn API v2 中获取赞助指标,如点击、印象、反应和参与率
- swift - SwiftUI:从应用程序出去并返回后滚动时导航栏是空白的
- javascript - Paperjs Tween 不适用于属性半径