Java 插入字符串时出现的问题
我有如下的字符串Java 插入字符串时出现的问题,java,string,Java,String,我有如下的字符串 String first = "UPPER(substr(con.table_name,1,4)) <> 'BIN$' order by name" String second = "and constraint_type = 'C' " String first=“supper(substr(con.table_name,1,4))'BIN$”按名称排序” String second=“和约束类型='C'” 我必须在UPPER(substr(con.tab
String first = "UPPER(substr(con.table_name,1,4)) <> 'BIN$' order by name"
String second = "and constraint_type = 'C' "
String first=“supper(substr(con.table_name,1,4))'BIN$”按名称排序”
String second=“和约束类型='C'”
我必须在UPPER(substr(con.table_name,1,4))“BIN$”的第一个字符串之后插入第二个字符串。
我的成绩
String c=“supper(substr(con.table_name,1,4))'BIN$”
和constraint_type='c'order by name”
字符串是不可变的,因此首先不能更改a
引用的字符串。您需要创建一个新字符串并重新分配a
以引用新字符串:
要在a
字符串中的order by
部分之前插入b
字符串,可以执行以下操作
int i = a.indexOf("order by");
String newString = a.substring(0, i) + b + a.substring(i);
结果是
UPPER(substr(con.table_name,1,4)) <> 'BIN$' and constraint_type = 'C' order by name
UPPER(substr(con.table_name,1,4))'BIN$'和constraint_type='C'按名称排序
看一看。
这允许使用参数格式化格式字符串(如
UPPER(substr(con.table_name,1,4))'BIN$'{0}order by name
)格式(您的参数为,约束类型为'C'
)。如果您对a有控制权,其他答案之一可能是解决此问题的最佳方法
假设您无法控制字符串a的内容,可以调用a.split(“order by”),将两个结果片段保存到两个变量a1和a2中,并使用a1和a2之间的b创建一个新字符串。类似这样(未经测试):
再说一次,我还没有真正测试过这个,但你明白了
另一方面,看起来您正在进行一些简单的sql操作。别这样,我的朋友。您的代码很容易受到sql注入的攻击。使用事先准备好的语句。那么,你想让我们在不告诉我们你尝试了什么的情况下为你做些什么,显然也没有给那些帮助过你的人任何荣誉吗?我的问题是如何在字符串的第一个中插入第二个字符串,但应该在字符串的第一个和之后插入(按名称排序)(上表(下表\u name,1,4))“BIN$”)
String[] temp = a.split("order by");
String result = temp[0] + " " + b + " order by " + temp[1];