如何使用定界符排除括号?

How to use delimiter to exclude parenthesis?

假设我有这个字符串:“(hello) (world)”

我如何使用 .useDelimiter() 方法来获得在不同行中打印 hello 和 world 的输出?

我看到了一堆定界符模式示例,它们似乎都在 useDelimiter 的参数中使用了一种奇怪的语法。

试试这个分隔符:

 "\(|\)"

useDelimiter() 接受正则表达式作为其参数,您可以在此处查看 Oracle 关于正则表达式的教程:https://docs.oracle.com/javase/tutorial/essential/regex/

对于您的具体情况,分隔符 [\(\)] 应该有效。

这个"weird syntax"叫做正则表达式,你可以在javadoc of the class Pattern.

中找到语法

默认分隔符是\p{javaWhitespace}+,这意味着一个或多个"java whitespace"(参见前面的javadoc)。

在您的情况下,您可以将其更改为 [\p{javaWhitespace}()]+,因为您也有空格。

另外别忘了转义 \p

s.useDelimiter("[\p{javaWhitespace}()]+");