Java 修改SQL语句的字符串输出
我正试图修改如下输出Java 修改SQL语句的字符串输出,java,regex,Java,Regex,我正试图修改如下输出[SNO,text,SNAME,text,STATUS,number,CITY,text]。 类似于此的内容(SNO文本、SNAME、文本、状态号、城市、文本) 但是我在用这个代码处理第一次提到的输出后得到的输入 String fieldsToTable ="(" + tableFields + ")"; fieldsToTable.replaceAll("[()]", ""); String modFieldsToTable = fieldsToTable.replace(
[SNO,text,SNAME,text,STATUS,number,CITY,text]
。
类似于此的内容(SNO文本、SNAME、文本、状态号、城市、文本)
但是我在用这个代码处理第一次提到的输出后得到的输入
String fieldsToTable ="(" + tableFields + ")";
fieldsToTable.replaceAll("[()]", "");
String modFieldsToTable = fieldsToTable.replace("\\,","");
System.out.println(modFieldsToTable);
我将其作为输出:([SNO,text,SNAME,text,STATUS,number,CITY,text])
我觉得我没有真正理解正则表达式的概念…你试过这个吗
fieldsToTable = fieldsToTable.replace("[","(").replace("]",")");
这个怎么样
String fields = "(" + tableFields.substring(1, tableFields.length() - 1) + ")";
试试下一个:
public static void main(final String[] args) {
String tableFields = "[SNO, text, SNAME, text, STATUS, number, CITY, text]";
List<String> list = new ArrayList<String>();
for (String field : tableFields.split("[\\[\\] ,]")) {
if (!field.isEmpty()) {
list.add(field);
}
}
StringBuilder sb = new StringBuilder("(");
for (Iterator<String> iterator = list.iterator(); iterator.hasNext();) {
sb.append(iterator.next());
if (iterator.hasNext()) {
sb.append(",");
}
}
sb.append(")");
String modFieldsToTable = sb.toString();
System.out.println(modFieldsToTable);
}
publicstaticvoidmain(最终字符串[]args){
String tableFields=“[SNO,text,SNAME,text,STATUS,number,CITY,text]”;
列表=新的ArrayList();
for(字符串字段:tableFields.split(“[\\[\\],]”){
如果(!field.isEmpty()){
列表。添加(字段);
}
}
StringBuilder sb=新的StringBuilder(“”);
for(Iterator Iterator=list.Iterator();Iterator.hasNext();){
sb.append(iterator.next());
if(iterator.hasNext()){
某人加上(“,”);
}
}
某人加上(“)”;
字符串modFieldsToTable=sb.toString();
系统输出打印LN(modFieldsToTable);
}
给定输入字符串tableFields=“[SNO,text,SNAME,text,STATUS,number,CITY,text]”
要删除方括号,请尝试:
String fieldsToTable = tableFields.replace('[', '('); // replaces [ with (
fieldsToTable = fieldsToTable.replace(']', ')'); // replaces ] with )
不清楚何时删除逗号。如果要删除所有逗号,代码为:
fieldsToTable = fieldsToTable.replaceAll(",", ""); // removes all commas
如果您只是想在这两种特定情况下删除逗号,只需执行以下操作:
fieldsToTable = fieldsToTable.replace("SNO,", "SNO"); // removes comma after SNO
fieldsToTable = fieldsToTable.replace("STATUS," "STATUS"); // removes comma after STATUS
请注意,由于该方法返回结果字符串,因此可以通过将这三个字符串链接在一起来提高代码的清晰度
String fieldsToTable = tableFields.replace('[', '(')
.replace(']', ')')
.replaceAll(",", "");
或
很抱歉,输出仍然有许多逗号:/((SNO,text,SNAME,text,STATUS,number,CITY,text))我想我可以通过查看我的代码来删除额外的括号。我在(String-field:tableFields.split([\[\],]){上得到一个无法解决的方法错误。split用红色标记。我不明白为什么:(不要忘记用\\转义\选项。如果答案有帮助,您可以。
String fieldsToTable = tableFields.replace('[', '(')
.replace(']', ')')
.replace("SNO,", "SNO")
.replace("STATUS," "STATUS");