簡體   English   中英

基於Java中字符的字符串拆分操作

[英]String split Operation based on characters in java

我有一個文本框,需要輸入變化形式。輸入是數據庫表的擴展列,數字被當作String。這是輸入條件:

  1. 僅輸入5028
  2. 輸入用連字符(-)分隔,例如5028-5090。
  3. 輸入以逗號分隔,例如5028、5029。
  4. 包含單個,連字符和逗號的輸入,在單個輸入處分開,例如5029,1234-4567,9876。

我已經寫出了只對一個輸入進行查詢的條件,輸入用連字符分隔,輸入分別用逗號分隔..現在根據我的需要,我必須編寫條件,其中我必須格式化輸入的查詢格式,例如5029,1234-4567, 9876但我沒有得到確切的邏輯..

這是我的代碼。

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

請大家幫我..在此先感謝。

進行以下更改:1.將if (extension != "")替換為if (!extension.equals(""))

  1. 在第一個if條件塊中if (extension.contains(","))String extn[] = extension.split(",");之后的if (extension.contains(",")) String extn[] = extension.split(","); 再次在'-'上分割每個String 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);
}
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM