我有一个像
这样的字符串s = "x = 123 & y = abc & dateFrom >= 1234500000 & dateTo <= 654870000"
, 1234500000 和 654870000 是时间戳,我想用yyyy-mm-dd替换日期,我知道如何转换它们。我的问题是如何在java中替换它们。知道时间戳没有修复
答案 0 :(得分:1)
您可以使用模式匹配:
String s = "x = 123 & y = abc & dateFrom >= 1234500000 & dateTo <= 654870000";
Pattern p = Pattern.compile("dateFrom >= (\\d+) &");
Matcher m = p.matcher(s);
if (m.find())
s = s.replace(m.group(1), "ABC"); //replace timestamp from
p = Pattern.compile("dateTo <= (\\d+)");
m = p.matcher(s);
if (m.find())
s = s.replace(m.group(1), "DEF"); //replace timestamp to
System.out.println(s);
输出:
x = 123 & y = abc & dateFrom >= ABC & dateTo <= DEF
答案 1 :(得分:0)
首先,您可以使用cmos_cells.lib
提取长片。
counter.ys
为了不将Pattern
视为日期,请考虑使用一些min&amp;最大值或仅在Pattern pattern = Pattern.compile("(\\d+)");
Matcher matcher = pattern.matcher(s);
while(matcher.find()) {
...
}
之后开始尝试查找日期。
然后,您可以例如解析所有123
,将它们转换为日期并提供dateFrom
,其中包含long
的字符串表示作为键和文本表示日期作为价值。
完成后,您可以在地图上进行迭代,并为地图中的每个条目调用Map
:
long
警告:您将无法解析String.replaceAll(key, value)
之前的日期(时间戳= 0)。