Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java扫描程序忽略^Caret_Java_Java.util.scanner_Delimiter - Fatal编程技术网

java扫描程序忽略^Caret

java扫描程序忽略^Caret,java,java.util.scanner,delimiter,Java,Java.util.scanner,Delimiter,我试图通过使用方法useDelimiter(&|=| ~~ | ^),将java scanner与以下一组分隔符一起使用(&|=| ~| ^) 除了被忽略的^之外,所有分隔符都正常工作:为什么 我在扫描仪文档中看不出原因。您需要转义^,如下所示:使用分隔符(&|=| ~| \^)。这是因为^是正则表达式中的元字符,usedimiter()的String参数最终被编译成正则表达式 等价地,您可以这样编写分隔符,在这种情况下,无需转义^:使用分隔符(“[&=~^]”)^是正则表达式中的保留符号,因此

我试图通过使用方法
useDelimiter(&|=| ~~ | ^),将java scanner与以下一组分隔符
一起使用(&|=| ~| ^)

除了被忽略的
^
之外,所有分隔符都正常工作:为什么


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

您需要转义
^
,如下所示:
使用分隔符(&|=| ~| \^)
。这是因为
^
是正则表达式中的元字符,
usedimiter()
String
参数最终被编译成正则表达式


等价地,您可以这样编写分隔符,在这种情况下,无需转义
^
使用分隔符(“[&=~^]”)

^
是正则表达式中的保留符号,因此您需要转义它:
\^
,而不是使用替换,您可以使用:


因为
^
在字符类中不是特殊的(除了开始时),所以它不需要转义。

我认为“蠕动”被称为“波浪线”(~)。。。只是我不认为我能正确拼写tilde,虽然我已经尝试过这种方法,但它不起作用。。。但是我认为这是因为^后面紧跟着=。我相信如果两个测厚仪互相跟踪,那么使用一个测厚仪列表是不起作用的。。。或者可能两个相邻的delimeter在字符类中的标记中得到null(在正则表达式中被
[]
包围),如果在开始处找到
^
则表示否定。例如,此
[^abc]
表示:匹配除a、b或c以外的任何内容。如果插入符号出现在字符类中的任何其他位置,它将被解释为普通字符
"[&=~^]"