在java中,如何在括号和单引号之间添加空格?
我正在尝试转换以下字符串在java中,如何在括号和单引号之间添加空格?,java,string,Java,String,我正在尝试转换以下字符串 插入表格01值('abcd01'、'abcd02'、'abcd03') 到 插入表格01值('abcd01','abcd02','abcd03') 我的代码: package layout; public class String02 { public String Replace01(String testString) { String string01 = ""; string01 = testStr
插入表格01值('abcd01'、'abcd02'、'abcd03')
到
插入表格01值('abcd01','abcd02','abcd03')
我的代码:
package layout;
public class String02 {
public String Replace01(String testString) {
String string01 = "";
string01 = testString.replaceAll("\\('", "\\( ");
string01 = testString.replaceAll("\\)", " \\)");
string01 = testString.replaceAll(",", ", ");
return string01;
}
public static void main(String[] args) {
String02 app = new String02();
String testString = "Insert into table01 values('abcd01','abcd02','abcd03')";
String s1 = app.Replace01(testString);
System.out.println(s1);
}
}
您可以使用regex
('(?=\\)\124;\\、\ 124;\()
和捕获组引用$1
以及replaceAll()
方法:
String testString = "Insert into table01 values('abcd01','abcd02','abcd03')";
String string01 = testString.replaceAll("('(?=\\))|\\,|\\()", "$1 ");
System.out.println(string01);
:捕获组(…)
:捕获组参考$1
:或运算符|
:在(?=…)
之前对捕获
)进行正向前瞻
string01 = testString.replaceAll("\\('", "\\( '");
string01 = string01.replaceAll("\\)", " \\)");
string01 = string01.replaceAll(",", ", ");
此外,您的第一个replaceAll(…)语句不正确,因为您在替换字符串中遗漏了
”
。错误主要是您没有使用string01
进行第二次和第三次替换,
但是原始的testString
。(replace(All/First)
不会更改字符串本身,但会生成一个新字符串)。
因此,第一次和第二次替换丢失
这样就不需要正则表达式替换。你可以这样写:
string01 = testString.replace("('", "( '")
.replace(")", " )")
.replace("','", "', '");
如果你对正则表达式有困难,请考虑回到基础。
公共类String02{
公共字符串替换01(字符串测试字符串){
字符串string01=“”;
char ch;
对于(int i=0;i您还可以使用lookarounds查找特定位置,在替换中使用单个空格
(?<=\(|',)(?=')|(?<=')(?=\))
输出
Insert into table01 values( 'abcd01', 'abcd02', 'abcd03' )
“代码”> RePATALL(“\”、“\”)/代码>应该是“代码> RePATALL”(“\”(\)\“\”)/代码>否则,在第一个值之前丢失了单个引用。BTW:这不是一个应该用正则表达式解决的问题,考虑一下发生了什么,例如-<代码>插入Table 01值(“ABCD(01)”、“ABCD02”、“ABCD03”)。
您提出了多个问题,但没有一次“接受”并回答。请参阅:
(?<=\(|',)(?=')|(?<=')(?=\))
String s = "Insert into table01 values('abcd01','abcd02','abcd03')";
String result = s.replaceAll("(?<=\\(|',)(?=')|(?<=')(?=\\))", " ");
System.out.println(result);
Insert into table01 values( 'abcd01', 'abcd02', 'abcd03' )