Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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 修改SQL语句的字符串输出_Java_Regex - Fatal编程技术网

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");