简而言之,我正在研究的系统有很多层。在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)");

07-28 02:20
查看更多