2013-10-27 118 views
0

我有一個文本框,我需要在變量中給出輸入。輸入是用於數據庫表的擴展列和數字被視爲String.Here是輸入條件:字符串拆分基於java中的字符的操作

  1. 只有一個輸入像5028
  2. 輸入用連字符( - )分隔,如5028-5090。
  3. 用逗號(,)分隔的輸入,如5028,5029。
  4. 輸入包含單個輸入,連字符和逗號,在單個輸入處分隔,如5029,1234-4567,9876。

我已經寫了條件形成的查詢只有一個輸入,輸入由連字符隔開,輸入用逗號單獨分開..Now按照我的需要我必須寫在那裏我必須像輸入格式查詢條件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); 
    } 
} 

請你們幫助我.. 在此先感謝。

+0

對不起,但我不明白你的問題。你有一個複雜的值設置像5029,1234-4567,9876,你想運行一個SELECT查詢返回值爲5029,1234,4567或9876的行嗎? –

+0

@AycanYaşıt是的先生正是我想要做的一樣 – vikas

+0

@AycanYaşıt我需要給條件合成查詢時,值如5029,1234-4567,9876給出 – vikas

回答

1

執行以下變化: 1. if (!extension.equals(""))

  1. 取代if (extension != "")在第一if條件塊if (extension.contains(","))String extn[] = extension.split(",");再次分裂每個字符串分機[] ' - ' 和做其它處理

試試這個

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