gpt4 book ai didi

出于性能原因,Java String.split 传递预编译的正则表达式

转载 作者:太空狗 更新时间:2023-10-29 22:43:41 24 4
gpt4 key购买 nike

如问题所述,给出以下代码:

public class Foo
{
public static void main(String[] args)
{
String test = "Cats go meow";
String[] tokens = test.split(" ");
}
}

是否可以按照以下方式在拆分函数中预编译该正则表达式:

public class Foo
{
Pattern pattern = Pattern.compile(" ");
public static void main(String[] args)
{
String test = "Cats go meow";
String[] tokens = test.split(pattern);
}
}

最佳答案

是的,这是可能的。此外,将 pattern 设为静态,以便静态方法 main 可以访问它。

public class Foo
{
private static Pattern pattern = Pattern.compile(" ");
public static void main(String[] args)
{
String test = "Cats go meow";
String[] tokens = pattern.split(test);
}
}

根据docs对于String中的split方法,可以使用String的split或者Pattern的split,但是String的split编译出一个Pattern 并调用它的 split 方法,因此使用 Pattern 预编译正则表达式。

关于出于性能原因,Java String.split 传递预编译的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14901569/

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