gpt4 book ai didi

java string.replace 使用方法运行太慢

转载 作者:行者123 更新时间:2023-11-30 04:27:50 25 4
gpt4 key购买 nike

我有一个以字符串作为参数的方法,该方法用方法中的字符串替换特定占位符:

public static String format(String in)
{
in=in.replace("[time]",getTime()); //just some methods returning strings
in=in.replace("[name]",getName());
}

我的问题是,即使字符串“[time]”没有出现在字符串中,每次调用 format(String) 时都会调用 getTime() 和 getName() 方法。由于我调用 format(String) 数百次,因此需要一分钟才能解析所有字符串。由于 getTime() 和 getName() 需要很长时间执行,并且子字符串“[time]”和“[name]”很少见,因此如果replace方法仅在出现子字符串“[time]”和“[name]”时调用 getTime() 或 getName() ,速度会快得多是一个占位符。我看到的最快的解决方案是重写 string.replace() 来替换(String)。现在我的两个问题是:

  1. 有更快的方法吗?
  2. 哪种编写replace(String)的方法最快?

最佳答案

如果在字符串中搜索所需的时间少于调用 getTime()getName() 的时间,则首先使用 contains

if (in.contains("[time]"))
{
in=in.replace("[time]",getTime());
}

然后,您只需在需要时调用 getTime() 即可。与 getName() 相同。

或者,如果 getTime()getName() 始终返回相同的结果,则仅调用它们一次并存储其结果以供以后使用。

关于java string.replace 使用方法运行太慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15420490/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com