2013-10-27 2 views
0

텍스트 상자에 variation.Input을 입력해야합니다. 데이터베이스 테이블의 확장 열과 숫자가 String으로 사용됩니다. 입력 조건은문자열 분할 자바의 문자를 기반으로 한 연산

입니다.
  1. 같은 입력은 5028-5090과 같이 하이픈 (-)으로 구분됩니다.
  2. 5028,5029와 같이 쉼표 (,)로 구분하여 입력하십시오.
  3. 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); 
    } 
} 

하십시오 사람은 사전에 .. 감사를 도와주세요.

+0

죄송합니다. 귀하의 질문을 이해하지 못했습니다. 5029,1234-4567,9876과 같이 복잡한 값을 설정하고 5029, 1234, 4567 또는 9876 값을 갖는 행을 반환하는 SELECT 쿼리를 실행 하시겠습니까? –

+0

@ AycanYaşıt 예 선생님 정확히 내가 같은 일을하고 싶습니다 – vikas

+0

@ AycanYaşıt 나는 5029,1234-4567,9876과 같은 값이 주어지면 쿼리를 구성하기 위해 조건을 부여해야합니다. – vikas

답변

1

수행 다음과 같이 변경 : 상태 블록을 String extn[] = extension.split(","); 다시 각 문자열 발신 [] 분할 if (extension.contains(",")) 후 경우 1. 처음에 if (!extension.equals(""))

  1. if (extension != "") 교체 '-'등의 과정을

이것을 사용해보십시오

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