java中基于字符的字符串拆分操作
我有一个文本框,需要在其中输入变体。输入用于数据库表的扩展列,数字作为字符串。以下是输入条件:java中基于字符的字符串拆分操作,java,string,string-concatenation,Java,String,String Concatenation,我有一个文本框,需要在其中输入变体。输入用于数据库表的扩展列,数字作为字符串。以下是输入条件: 只有一个输入,如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(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