gpt4 book ai didi

c# - Java 相当于 C# `StringSplitOptions.RemoveEmptyEntries` 和 Java `StringTokenizer(input2, "{},()\t")`

转载 作者:行者123 更新时间:2023-12-02 07:48:59 27 4
gpt4 key购买 nike

作为一名 Java 新手,我正在为 String.split 苦苦挣扎。尝试标记以下字符串

"(3,3,{S,W,P},{P,W,P},{P,P,P}),(1,2,{S,E}),(2,1,{{S},{E}})"

使用 String.split 的正则表达式模式 "\\{|\\(|\\}|\\)|\\s|,"

不幸的是,它还会在发生匹配时返回空字符串,我想抑制它,类似于 C# 中的 StringSplitOptions.RemoveEmptyEntries

相反,使用StringTokenizer效果很好,但我试图避免它被弃用。为了明确我的问题,我正在尝试使用 String.split 进行等效行为,就像使用以下 Tokenizer

new StringTokenizer(input2, "{},() \t")

请建议我应该如何进行。

最佳答案

首先,您可以通过使用字符类而不是交替来消除大部分反斜杠。然后,正如 Christopher 所说,您可以添加 + 来模仿 StringTokenizer 匹配一个或多个 分隔符的行为:

"[{},()\\s]+"

不幸的是,当字符串以分隔符开头时,没有办法阻止第一个空标记。 尾随空标记会自动删除,但您必须自己过滤掉前导标记。

当然,如果您愿意,您可以自由使用 StringTokenizer,或者像 Guava 的 Splitter 这样的第三方工具。 .

关于c# - Java 相当于 C# `StringSplitOptions.RemoveEmptyEntries` 和 Java `StringTokenizer(input2, "{},()\t")`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10466630/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com