作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
如问题所述,给出以下代码:
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/
我是一名优秀的程序员,十分优秀!