Java 根据条件替换第一个和最后一个字符(哪种方法更快)?

Java 根据条件替换第一个和最后一个字符(哪种方法更快)?,java,string,optimization,replace,Java,String,Optimization,Replace,我有一个包含数千个字符串的列表,其形式如下: 话 或 “不止一个词” 我希望在出现“”时将其删除,以便将字符串保存到数据库中 我想知道哪种方法更快: 使用行。替换(“\”,”); 验证第一个字符是否为“”,然后将子字符串从字符1变为长度-1 甚至,还有更好的方法吗?第二种方法更快。它将执行最多一个字符比较和一个数组副本,而不是将字符串中的所有字符与“字符”进行比较。这两种方法都需要迭代几乎整个字符串,但是子字符串不必将每个字符与“进行比较,因此可能会更快。预优化是有害的,只是说说而已。除非它成为

我有一个包含数千个字符串的列表,其形式如下:

“不止一个词”

我希望在出现“”时将其删除,以便将字符串保存到数据库中

我想知道哪种方法更快:

  • 使用
    行。替换(“\”,”);
  • 验证第一个字符是否为“”,然后将子字符串从字符1变为长度-1
    甚至,还有更好的方法吗?

    第二种方法更快。它将执行最多一个字符比较和一个数组副本,而不是将字符串中的所有字符与“字符”进行比较。

    这两种方法都需要迭代几乎整个字符串,但是
    子字符串
    不必将每个字符与
    进行比较,因此可能会更快。预优化是有害的,只是说说而已。除非它成为一个问题,否则你不应该担心它。是否存在性能问题?line.replace迭代每个字符,比较并将其存储在新的缓冲区数组中。另一方面,line.substring在内部使用JNI和Arrays.copyOfRange创建新字符串。line.substring可能会更快。@Vince-我不确定这是预优化。对我来说(天真的),这是观察大O型的东西。我试图在选择算法和实现时考虑内存/空间/时间的权衡。当你可以选择一些已知的东西来满足需求时,为什么要掷骰子呢?或者为什么要等到它成为问题?@jww Pre-optimization是在您知道需要之前执行任何优化。如果他觉得他需要扩展他的应用程序,而他的当前系统无法扩展,那么这将是一个问题。但是花时间去优化那些可能不需要优化的东西会浪费很多时间,这会导致进度变慢。虽然这可能符合“时间复杂性”的争论,但他之前没有在这一层面上对这种情况进行研究。他担心提高性能,但没有告诉我们是否确实需要,这属于预优化