简而言之,我正在研究的系统有很多层。在Java中,我将得到一个包含要求值条件的字符串。我将收到一个字符串,其中可能包含对称为“ days(int)”的函数的函数调用。该字符串可能如下所示:
1405555200 + days(4)
要么
1405555200 + days(param_date)
其中第一个操作数是Unix时间戳。系统中的日期将转换为Unix时间(长)。本质上,字符串中的days(x)只是“将这几天添加到时间戳”的一种表示法。由于一天是86400秒,因此我们可以简化此表示法,以“将参数的86400倍添加到另一个操作数中”。
我需要找到这种模式的所有发生,然后转向
1405555200 + days(param_date)
进入
1405555200 + (86400 * param_date)
我怎样才能做到这一点?
最佳答案
您可以使用String#replaceAll()
:
String newString = oldString.replaceAll("days\\(([^)]+)\\)", "(86400 * $1)");