gpt4 book ai didi

java - java中的字符串分割/标记化而不编译正则表达式?

转载 作者:行者123 更新时间:2023-12-01 17:24:49 24 4
gpt4 key购买 nike

标准 Java API 中是否有一种简写方法可以让我在 1 行中从字符串 1^2^3^4 中获取 token ?我想说要提取的第三个元素“3”。我不想要任何编译正则表达式的东西。将其传递到预编译的正则表达式中很好,但每次调用方法时不断编译正则表达式会损害 CPU。

最佳答案

您可以使用预编译的 Pattern 轻松分割;

static Pattern regex = Pattern.compile("\\^");

private static String getEntry(String input, int which)
{
return regex.split(input)[which];
}

...或者,直接用代码来完成,而不是使用正则表达式,因为它不会创建不需要的 String 对象,所以应该更快。

private static String getEntry(String input, int which)
{
int left, right = -1;
do {
left = right;
right = input.indexOf('^', right+1);
}
while(which-- > 0 && right >= 0);

if(which != -1)
return null;

if(right == -1)
return input.substring(left+1);

return input.substring(left+1, right);
}

关于java - java中的字符串分割/标记化而不编译正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15849826/

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