Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 插入字符串时出现的问题_Java_String - Fatal编程技术网

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];