用于替换String中的单词的Java String

时间:2016-10-22 17:51:57

标签: java collections

请您为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;客户"。

您能否提供最佳功能/解决方案来解决这个问题。

1 个答案:

答案 0 :(得分:2)

str1 = str1.replaceAll("(?i)\\bCUSTOMER\\.", "");

这使用不区分大小写的(?i),字边界\b并转义.

顺便说一句,关于占位符的PreparedStatement可能会简化事情

String str1 = "insert into CUSTOMER(Name, Age, city) values (?,?,?)";

除了处理恶意数据输入外,它还会转发d'Artagnan等名称。