有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    extractedStr中有一个尾随空格

    所以它包含"TEST12-1-TV_50 "(不是在最后的0后面有空格)

    您可以用aStr.indexOf(" as")(起始空间)替换endIndex,或者只需在extractedStr上调用trim()

    String extractedStr=aStr1.substring(strtIndex+1,endIndex).trim();