对于一门系统软件开发课程,我正在为一个由讲师发明的汇编语言编写完整的汇编器。目前我正在处理分词器。在进行一些搜索时,我遇到了Java的StringTokenizer类...但我发现它已经被基本废弃了。然而,与使用正则表达式的String.split方法相比,它似乎要容易得多。
是否有什么原因我应该避免使用它?或者,也许在典型的Java库中还有其他适合此任务的东西我不知道?
编辑:提供更多细节。
我考虑使用String.split复杂的原因是我对正则表达式的了解大概就是听说过。虽然作为软件开发人员,了解它们对我的一般知识可能会有所帮助,但我现在不确定是否想要投入时间,特别是如果存在更简单的替代方案。
关于我的分词器的使用:它将遍历包含汇编代码的文本文件,并将其拆分为标记,将文本和标记类型传递给解析器。定界符包括空格(空格、制表符、换行符)、注释开始字符“|”(可以出现在自己的一行上,也可以在其他文本后面),以及用于分隔指令中操作数的逗号。
我会更数学地写出来,但是我的形式语言知识有点生疏。
编辑2:更清晰地提问
我已经看过了StringTokenizer类的文档。它很适合我的目的,但其使用被不鼓励。除了String.split之外,是否有标准Java库中其他有用的东西?
是否有什么原因我应该避免使用它?或者,也许在典型的Java库中还有其他适合此任务的东西我不知道?
编辑:提供更多细节。
我考虑使用String.split复杂的原因是我对正则表达式的了解大概就是听说过。虽然作为软件开发人员,了解它们对我的一般知识可能会有所帮助,但我现在不确定是否想要投入时间,特别是如果存在更简单的替代方案。
关于我的分词器的使用:它将遍历包含汇编代码的文本文件,并将其拆分为标记,将文本和标记类型传递给解析器。定界符包括空格(空格、制表符、换行符)、注释开始字符“|”(可以出现在自己的一行上,也可以在其他文本后面),以及用于分隔指令中操作数的逗号。
我会更数学地写出来,但是我的形式语言知识有点生疏。
编辑2:更清晰地提问
我已经看过了StringTokenizer类的文档。它很适合我的目的,但其使用被不鼓励。除了String.split之外,是否有标准Java库中其他有用的东西?
StringTokenizer
和split(...)
更好的方法来实现。 - Bart Kiers