나는 문자열이 persons.name
나는 DOT를 대체 할 .
함께 /*/
내 출력됩니다 즉,persons/*/name
이 코드를 시도했습니다.
String a="\\*\\";
str=xpath.replaceAll("\\.", a);
StringIndexOutOfBoundsException이 발생합니다.
점은 어떻게 바꾸나요?
나는 문자열이 persons.name
나는 DOT를 대체 할 .
함께 /*/
내 출력됩니다 즉,persons/*/name
이 코드를 시도했습니다.
String a="\\*\\";
str=xpath.replaceAll("\\.", a);
StringIndexOutOfBoundsException이 발생합니다.
점은 어떻게 바꾸나요?
답변:
점 앞에 두 개의 백 슬래시가 필요합니다. 하나는 슬래시를 이스케이프하여 통과하도록하고 다른 하나는 점을 이스케이프하여 문자가되도록합니다. 슬래시와 별표는 리터럴로 처리됩니다.
str=xpath.replaceAll("\\.", "/*/"); //replaces a literal . with /*/
간단한 문자열을 대체 할 당신이 정규 표현식의 능력을 필요로하지 않는 경우, 당신은 사용할 수 있습니다 replace
, 없습니다 replaceAll
.
replace
일치하는 각 하위 문자열을 대체하지만 해당 인수를 정규 표현식으로 해석하지 않습니다.
str = xpath.replace(".", "/*/");
사용 아파치 코 몬즈 랭 :
String a= "\\*\\";
str = StringUtils.replace(xpath, ".", a);
또는 독립형 JDK 사용 :
String a = "\\*\\"; // or: String a = "/*/";
String replacement = Matcher.quoteReplacement(a);
String searchString = Pattern.quote(".");
String str = xpath.replaceAll(searchString, replacement);
xpath.replaceAll("\\\\.", "/*/")
그래?