java - 真的可以快速分割字符串而不影响带引号的字符串吗?

标签 java regex performance split tokenize

我需要一个非常快的字符串分割函数,它可以分解逗号分隔的字符串,而不会分解包含在包含逗号的双引号中的字符串。有没有一个函数可以做到这一点?如果最好通过正则表达式处理,请指出必要的模式,如果适用,请告诉我我应该了解的任何速度优化技巧。例如,如果有一种方法来调用正则表达式,不需要每次都重新评估正则表达式模式,等等。这个函数会在短时间内被调用数千次。

注意,我确实在 SO 上看到过这样的正则表达式帖子:

Regular Expression To Split On Comma Except If Quoted

但它们是 C# 和其他语言,而不是 Java。另外,如果有更快的非正则表达式方法,我想了解它,正如我上面指出的。

--罗施勒

最佳答案

听起来您正在尝试解析 CSV 格式的字符串/文件?

如果是这样,也许您不必自己编写代码。查看用于 CSV 解析的 apache commons 库:

http://commons.apache.org/sandbox/csv/

关于java - 真的可以快速分割字符串而不影响带引号的字符串吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6638428/

相关文章:

Java - 绘制多项式

java - Servlet工作原理的疑问

java - Pattern.asPredicate 中的错误?

java - 在 IntelliJ 中添加 SDK 时遇到问题

java - 正则表达式提取两个括号之间的数据

javascript - 具有 css 属性的正则表达式

mysql - 如何使用 Jena SDB 插入/更新/删除个人以保持最佳性能?

multithreading - Numba 是 "only"将我的代码改进了 4 倍。它能做得更好吗?

java - Codility Brackets 挑战性能问题

java - 是否可以使用 Web 服务器 api 中的 MpAndroid 显示图表?