2017-03-27 2 views
-1

filterConditions는 {ID> = 3, 양 < 400}java.util.concurrent.ExecutionException : java.lang.NumberFormatException : 입력 문자열의 경우 : "= 3"in mongodb java?

String[] fCondition = filterConditions.split(","); 
     if(fCondition[i].contains(">=")){ 
      int indx1= fCondition[i].indexOf("="); 
      int indx2= fCondition[i].indexOf("="); 
      String f1 = fCondition[i].substring(0, indx1); 
      String f2 = fCondition[i].substring(indx2); 
      fieldList.add(Filters.gte(f1, Integer.valueOf(f2))); 
      continue; 
     } 
+0

필터 조건 값 및 샘플 문서를 표시하십시오. – notionquest

+0

filterConditions 값은 "ID> = 3, amount> 300"입니다. @notionquest – svm

+0

f2의 하위 문자열 값을 가져올 때 indx2 + 1을 사용하십시오. 그러면 equalto없이 3이됩니다. – notionquest

답변

0

변경 값을 얻을 3indx2+1f2에 할당된다. 현재 부분 문자열은 "= 3"에서 값을 가져옵니다. 의

String f2 = fCondition[i].substring(indx2+1); 

색인 : - 1.

가 지정된 문자가 최초로 출현하는이 캐릭터 라인 내에서의 인덱스를 돌려줍니다에서

카운트가 시작됩니다. 이 String 객체가 나타내는 문자 시퀀스 에 값이 ch 인 문자가있는 경우 해당 문자 중 첫 번째 문자 인 (유니 코드 코드 단위)이 반환됩니다. 같이 IndexOf 반환 4 아래

. 당신이 문자열 4를 얻을 때

int indx2= fCondition[i].indexOf("="); 

하위 문자열은 =에서 값을 가져옵니다, 0부터 시작합니다. 따라서 index+1으로 변경해야합니다.

int indx2= fCondition[i].indexOf("="); 
관련 문제