有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java最有效的分句方法

我正在编写一个应用程序,它在很大程度上依赖于将大字符串分割成单个单词。因为我必须处理这么多的字符串,所以我担心效率。我正在使用字符串。拆分来完成此操作,但我不知道是否有更有效的方法来完成此操作

private static String[] printWords(String input) {
        String splitWords[] = input.split(" ");
        return splitWords;
    }

共 (2) 个答案

  1. # 1 楼答案

    几年前,当我计时时,(Java6)字符串。split()比使用indexOf()搜索单个空格字符要慢得多,因为前者有很多正则表达式的负担

    如果你的句子总是在空格处分开,(有点可疑?)而且性能确实是个问题(做一些真实的测试),定制代码会更快

    根据David Ehrmann评论中提供的链接,Java7似乎有了一些加速。我的测试是用Java6进行的

  2. # 2 楼答案

    虽然Sun/Oracle的员工总体上做得不错,但仍有改进的余地,特别是因为您可以专门解决您的具体问题。有时,当你不依赖JITC来完成所有的工作时,你可能遇到一个巨大的加速因子是可以实现的情况。这种情况很少见,但是exist

    例如String.split在一般情况下调用Pattern.compile,然后预计算的Pattern肯定会赢

    对单字符模式进行了优化,避免了正则表达式开销,因此可能的增益是有限的。不过,如果性能真的很重要,我还是会尝试番石榴的Splitter和手工制作的解决方案

    也许你会发现空间分割不是你想要的,然后收益会更大