我正在尝试找到一种让 Scanner 使用给定分隔符作为标记的好方法。例如,我想将一段文本分成数字和非数字块,所以理想情况下,我只需将分隔符设置为\D
并设置一些标志,如 useDelimiterAsToken,但在简要浏览 API 之后,我不是想出任何办法。现在我不得不求助于对分隔符使用组合的前瞻/后视,这有点痛苦:
scanner.useDelimiter("((?<=\\d)(?=\\D)|(?<=\\D)(?=\\d))");
这会查找从数字到非数字的任何转换,反之亦然。有没有更理智的方法来做到这一点?