我正在尝试通过使用方法将 java 扫描器与以下一组分隔符& = ~ ^
(与号、等于、波浪号、插入符号)一起使用useDelimiter("&|=|~|^");
。
除了^
被忽略之外,所有分隔符都可以正常工作:为什么会这样?
我在扫描仪文档中看不到原因。
我正在尝试通过使用方法将 java 扫描器与以下一组分隔符& = ~ ^
(与号、等于、波浪号、插入符号)一起使用useDelimiter("&|=|~|^");
。
除了^
被忽略之外,所有分隔符都可以正常工作:为什么会这样?
我在扫描仪文档中看不到原因。
你需要逃跑^
,像这样:useDelimiter("&|=|~|\\^")
。那是因为^
is 是正则表达式中的元字符,并且String
参数useDelimiter()
最终被编译为 regex Pattern
。
等效地,您可以像这样编写分隔符,在这种情况下,无需转义^
:useDelimiter("[&=~^]")
^
是正则表达式中的保留符号,因此您需要对其进行转义:\\^
.