请您为Java代码中的以下场景提供最佳解决方案
I have a String like below
String str1= "insert into CUSTOMER(CUSTOMER.Name, CUSTOMER.Age, CUSTOMER.city) values ('ASAL',22,'New Yark')"
String str1 = "insert into CUSTOMER(Customer.Name, Customer.Age, Customer.city) values ('Thangam',23,'Sane')"
在这个String中我需要单独删除表名,其中tablename附加了列名。我的输出应该如下
String str1= "insert into CUSTOMER(Name, Age, city) values ('ASAL',22,'New Yark')"
String str1 = "insert into CUSTOMER(Name, Age, city) values ('Thangam',23,'Sane')"
请注意,在一个场景中,tablename为" CUSTOMER"和#34;客户"。
您能否提供最佳功能/解决方案来解决这个问题。
答案 0 :(得分:2)
str1 = str1.replaceAll("(?i)\\bCUSTOMER\\.", "");
这使用不区分大小写的(?i)
,字边界\b
并转义.
。
顺便说一句,关于占位符的PreparedStatement可能会简化事情
String str1 = "insert into CUSTOMER(Name, Age, city) values (?,?,?)";
除了处理恶意数据输入外,它还会转发d'Artagnan
等名称。