java - 将 StringTokenizer 替换为 String.split(..)

标签 java regex split

是否可以构建一个与 Javas Pattern.split(..) 方法一起使用的正则表达式来重现 StringTokenizer("...", "...", true ) 行为?

以便将输入分割为预定义标记字符和它们之间运行的任何任意字符串的交替序列。

JRE 引用声明 StringTokenizer 应该被视为已弃用,并且可以使用 String.split(..) 代替。所以认为那里是可能的。

我想使用split的原因是正则表达式通常是高度优化的。例如,StringTokenizer 在 Android 平台 VM 上速度相当慢,而正则表达式模式似乎是由优化的 native 代码执行的。

最佳答案

考虑到 split 的文档没有指定这种行为,并且只有一个可选参数来告诉数组应该有多大......不,你不能。

同时查看我能想到的唯一可以具有此功能的其他类 - 扫描仪 - 它也没有。所以我认为最简单的方法是继续使用 Tokenizer,即使它已被弃用。比编写自己的类更好 - 虽然这应该不会太难(实际上相当微不足道),但我可以想出更好的方式来度过时间。

关于java - 将 StringTokenizer 替换为 String.split(..),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5929439/

相关文章:

java - 从 Java 字符串中删除阿拉伯非字母数字字符

java - 设置/更改默认 Java MaxHeapSize 或更改默认 JVM 命令设置

regex - 修剪具有不同字符的字符串的前导和尾随部分

c++ - tr/regex c++ 库 - 正则表达式模式的定义

mysql - 如何将值拆分为多行(MySQL)

Java分割字符串?

java - 防止非法客户端的连接

java - 为什么我们在 Java PATH 变量中添加分号而不是在 JAVA_HOME 变量中添加分号?

regex - 将 grep 的匹配项存储在变量中

java - 使用 StringTokenizer 和 String.split( ) 的区别?