java为什么是字符串。匹配(“^[AZ09\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\”)在我通过操纵另一个字符串来给字符串赋值时不起作用,
String aStr="TEST-1-TV_50";
System.out.println(aStr.matches("^[A-Z0-9\\-\\_]+")); //TRUE.
但为什么这不起作用
String aStr1= "$local:TEST12-1-TV_50 as xs:boolean";
int strtIndex=aStr.indexOf(":");
int endIndex=aStr.indexOf("as");
String extractedStr=aStr1.substring(strtIndex+1,endIndex); //TEST12-1-TV_50
System.out.println(extractedStr.matches("^[A-Z0-9\\-\\_]+")); //FALSE.
为什么给出的结果是假的
# 1 楼答案
在
extractedStr
中有一个尾随空格所以它包含
"TEST12-1-TV_50 "
(不是在最后的0后面有空格)您可以用
aStr.indexOf(" as")
(起始空间)替换endIndex
,或者只需在extractedStr
上调用trim()
: