java中基于字符的字符串拆分操作

java中基于字符的字符串拆分操作,java,string,string-concatenation,Java,String,String Concatenation,我有一个文本框,需要在其中输入变体。输入用于数据库表的扩展列,数字作为字符串。以下是输入条件: 只有一个输入,如5028 输入用连字符(-)分隔,如5028-5090 用逗号(,)分隔的输入,如50285029 包含单个、连字符和逗号的输入,在单个输入处分隔,如50291234-45679876 我只为一个输入编写了形成查询的条件,输入用连字符分隔,输入用逗号分隔。现在根据我的需要,我必须编写条件,其中我必须为输入格式化查询,如50291234-45679876,但我没有得到确切的逻辑 这是我的

我有一个文本框,需要在其中输入变体。输入用于数据库表的扩展列,数字作为字符串。以下是输入条件:

  • 只有一个输入,如5028
  • 输入用连字符(-)分隔,如5028-5090
  • 用逗号(,)分隔的输入,如50285029
  • 包含单个、连字符和逗号的输入,在单个输入处分隔,如50291234-45679876
  • 我只为一个输入编写了形成查询的条件,输入用连字符分隔,输入用逗号分隔。现在根据我的需要,我必须编写条件,其中我必须为输入格式化查询,如50291234-45679876,但我没有得到确切的逻辑

    这是我的密码

    if (extension != "") {
        if (extension.contains(",")) {
            query = query.concat(" and (extension='");
            String extn[] = extension.split(",");
            for (int i = 0; i < extn.length; i++) {
                System.out.println(extn[i]);
                query = query.concat(extn[i]).concat("'").concat(" or extension='");
                System.out.println(query);
            }
            query = query.substring(0, query.length() - 15);
            System.out.println(query);
            query = query.concat(")");
            System.out.println(query);
        } else if (extension.contains("-")) {
            query = query.concat(" and cast(extension as signed) >=");
            String extn[] = extension.split("-");
            for (int i = 0; i < extn.length; i++) {
                System.out.println(extn[i]);
                query = query.concat(extn[i]).concat(" And cast(extension as signed) <=");
    
            }
            query = query.substring(0, query.length() - 33);
            System.out.println(query);
    
        } else {
            query = query.concat(" and extension='" + extension).concat("'");
            System.out.println(query);
        }
    }
    
    if(扩展名!=“”){
    if(扩展名.contains(“,”)){
    query=query.concat(“and(extension=”);
    字符串extn[]=extension.split(“,”);
    for(int i=0;i”;
    字符串extn[]=扩展名.split(“”);
    for(int i=0;iif(扩展名!=“”)
    替换为
    if(!extension.equals(“”)

  • 在第一个if条件块
    if(extension.contains(“,”)
    之后
    String extn[]=extension.split(“,”);
    再次在“-”上拆分每个字符串extn[],并执行其他处理
  • 试试这个

    if (!extension.equals("")) {
    if (extension.contains(",")) {
        query = query.concat(" and (extension='");
        String extn[] = extension.split(",");
        for(int k=0; k <extn.length; k++){
        if(extn[k].contains("-")){
            String subExtn[] = extn[k].split("-");
            for (int i = 0; i < subExtn.length; i++) {
                //System.out.println(subExtn[i]);
                query = query.concat(subExtn[i]).concat("'").concat(" or extension='");
    
            }
    
        }else{
            //for (int i = 0; i < extn.length; i++) {
               // System.out.println(extn[i]);
                query = query.concat(extn[k]).concat("'").concat(" or extension='");
              //  System.out.println(query);
            //}
        }
        //System.out.println(query);
        }
        query = query.substring(0, query.length() - 15);
       // System.out.println(query);
        query = query.concat(")");
        System.out.println(query);
    } else if (extension.contains("-")) {
        query = query.concat(" and cast(extension as signed) >=");
        String extn[] = extension.split("-");
        for (int i = 0; i < extn.length; i++) {
    
            query = query.concat(extn[i]).concat(" And cast(extension as signed) <=");
    
        }
        query = query.substring(0, query.length() - 33);
        System.out.println(query);
    
    } else {
        query = query.concat(" and extension='" + extension).concat("'");
        System.out.println(query);
    }
    }
    
    if(!extension.equals(“”){
    if(扩展名.contains(“,”)){
    query=query.concat(“and(extension=”);
    字符串extn[]=extension.split(“,”);
    
    对于(int k=0;k抱歉,我不明白您的问题。您是否有一个复杂的值集,如50291234-45679876,是否要运行SELECT查询,返回值为5029、1234、4567或9876的行?@AycanYaşıt是的,先生,我想执行以下操作:same@AycanYa当值为5029,12时,我是否需要为格式化查询提供条件给出了34-45679876