2

我正在尝试通过使用方法将 java 扫描器与以下一组分隔符& = ~ ^(与号、等于、波浪号、插入符号)一起使用useDelimiter("&|=|~|^");

除了^被忽略之外,所有分隔符都可以正常工作:为什么会这样?

我在扫描仪文档中看不到原因。

4

3 回答 3

3

你需要逃跑^,像这样:useDelimiter("&|=|~|\\^")。那是因为^is 是正则表达式中的元字符,并且String参数useDelimiter()最终被编译为 regex Pattern

等效地,您可以像这样编写分隔符,在这种情况下,无需转义^useDelimiter("[&=~^]")

于 2012-04-08T20:27:02.550 回答
2

^是正则表达式中的保留符号,因此您需要对其进行转义:\\^.

于 2012-04-08T20:27:06.730 回答
1

您可以使用字符类,而不是使用交替:

"[&=~^]"

由于^在字符类中并不特殊(开始时除外),因此不需要转义。

于 2012-04-08T20:28:07.387 回答