我正在寻找标记化字符串的最简单方法,例如
INPUT OUTPUT
"hello %my% world" -> "hello ", "%my%", " world"
在 Java 中。是否可以使用正则表达式来完成此操作?我基本上是在寻找一个 String.split() ,它采用“%*%”形式的东西作为分隔符,但不会像通常那样忽略它。
谢谢
最佳答案
不,您不能按照您解释的方式执行此操作。原因是——它是模棱两可的!
你举个例子:
"hello %my% world"-> "hello ", "%my%", "world"
% 应该附加到字符串之前还是之后?
输出应该是
“你好”,“%我”,“%世界”
或者,也许输出应该是
“你好%”、“我的%”、“世界”
在您的示例中,您不遵循这些规则中的任何一个。你想出了 %my%,它首先将分隔符附加到它出现的 after 字符串,然后附加到它出现的 before 字符串。
你看到歧义了吗?
因此,您首先需要制定一套明确的规则,说明您希望将分隔符附加到何处。一旦你这样做了,一个简单的(虽然不是特别有效,因为字符串是不可变的)实现你想要的方法是:
- 使用
String.split()
以正常方式拆分字符串 - 按照您的规则集将分隔符重新添加到字符串中应有的位置。
关于java - 如何使用 "%*%"作为分隔符在 Java 中拆分字符串,包括字符串结果列表中的分隔符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14035694/