当前位置: 首页 > 面试题库 >

用Java在LTRIM和RTRIM上有什么好的替代方案?

伊裕
2023-03-14
问题内容

在Java 中JavaScript ltrim()rtrim()函数有什么好的替代方案?


问题答案:

使用正则表达式,您可以编写:

String s = ...
String ltrim = s.replaceAll("^\\s+","");
String rtrim = s.replaceAll("\\s+$","");

如果必须经常执行此操作,则可以创建并编译模式以获得更好的性能:

private final static Pattern LTRIM = Pattern.compile("^\\s+");

public static String ltrim(String s) {
    return LTRIM.matcher(s).replaceAll("");
}

从性能的角度来看,一个快速的微基准测试(在JIT编译后)表明,正则表达式的方法比循环慢大约5倍(对于100万次ltrim,它是0.49s对0.11s)。

我个人发现正则表达式方法更具可读性,并且不易出错,但是如果性能成为问题,则应使用循环解决方案。



 类似资料:
  • 问题内容: 我有一个字符串数组,每个字符串包含3个字母。每3个字母(每个元素)对应一个唯一字母。我需要从字符串数组创建一个char数组。 我能想到的唯一方法是遍历字符串数组中的每个元素,并使用一个长的switch语句来确定其关联的单个字符。 还有什么其他方法可以实现? 问题答案: 如果是映射/查找,那么通常地图/词典可以解决您的问题。C#中的此类结构示例: 如果有这样的映射,则只需从映射中查找字母

  • 问题内容: 我现在正在使用Entity Framework,并且由于实体框架不支持全文搜索和其他功能,因此经常不得不编写内联sql。是否有一个具有许多支持高级查询功能的ORM?我觉得如果我有时要编写内联sql,那么我也最好在内联sql中做所有这些事情。这里有什么帮助 问题答案: 看一眼: 在DataObjects.Net中的LINQ查询。如果您对最复杂的部分感兴趣,请从尾部开始。 DataObje

  • 问题内容: 我们有一个类,其中包含应用程序的配置信息。它曾经是一个单身人士。经过一些体系结构审查后,我们被告知删除单例。我们确实看到了在单元测试中不使用单例的一些好处,因为我们可以一次测试所有不同的配置。 没有单例,我们必须在代码中的所有地方传递实例。变得太乱了,所以我们写了一个单例包装器。现在我们将相同的代码移植到PHP和.NET,我想知道是否有更好的模式可用于配置对象。 问题答案: 在谷歌测试

  • GitHub copilot原来是用学生认证,现在突然失效了,jetbrains 搞了个AI Assistant,但是一直 在waitlist,问下还有什么好的替代

  • 问题内容: 在代码库中,我们继承了MediaTracker的用法,始终在每个代码块中本地完成。 认为这效率低下,我最终将其替换为静态实例和方法: 迄今为止,还没有不良影响。 还有另一种可能的方法- 将MediaTracker附加到每个组件(通常是Frame或JFrame),这是构造函数文档中强烈建议采用的方法。 所以我有两个问题: 如何以及为什么使用MediaTracker? 有什么选择? 问题答

  • 编辑 认真地看一下切换你的电话和东西来改造。挺漂亮的。我很高兴我做了。有几个障碍,但很酷。