Java"||" 字符串替换为"OR"

Lak*_*age -1 java string replaceall

我有一个字符串

"age = 18 || name ='Mistic'|| civilstatus ='married'|| gender ='0'"

我需要替换"||" 通过"或".我试着跟随代码.

System.out.println("age = 18 || name = 'Mistic' || civilstatus = 'married' || gender = '0'".replaceAll("||", "OR"));
Run Code Online (Sandbox Code Playgroud)

但我得到了

"ORaORgOReOR OR = OR OR1OR8OR OR |和| OR ORnORaORmOReOR OR = OR OR'ORMORiORsORtORiORcOR'OR OR |和| OR ORcORiORvORiORlORsORtORaORtORuORsOR OR = OR OR'ORmORaORrORrORiOReORdOR'OR OR |和| OR ORgOReORnORdOReORrOR OR = OR OR'OR0OR'OR"

我需要的是

"年龄= 18或姓名='Mistic'或civilstatus ='已婚'或性别='0'"

我怎样才能做到这一点.

编辑我已经阅读了这个问题的问题和答案,并不是类似的.因为这个问题是关于替换字符串而我的问题是关于为我的代码获取不熟悉的结果.

Sca*_*bat 10

replaceAll当你不想用正则表达式取代时,为什么使用它?

尝试使用正常 replace

System.out.println("age = 18 || name = 'Mistic' || civilstatus = 'married' 
    || gender = '0'".replace("||", "OR"));
Run Code Online (Sandbox Code Playgroud)

产量

年龄= 18或姓名='Mistic'或civilstatus ='已婚'或性别='0'


The*_*ind 5

|在正则表达式中有特殊含义.你需要逃脱它.

public static void main(String[] args) {
    String s = "age = 18 || name = 'Mistic' || civilstatus = 'married' || gender = '0' ";
    System.out.println(s.replaceAll("\\|\\|", "OR"));
}
Run Code Online (Sandbox Code Playgroud)

O/P:

age = 18 OR name = 'Mistic' OR civilstatus = 'married' OR gender = '0' 
Run Code Online (Sandbox Code Playgroud)

PS:或者,您可以使用Pattern.quote()转义特殊字符.

String  st = Pattern.quote("||");
System.out.println(s.replaceAll(st, "OR"));
Run Code Online (Sandbox Code Playgroud)