2017-03-27 13 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を使用してください。 – notionquest

答えて

0

変更値3を取得するindx2+1からf2割り当てです。現在、部分文字列は "= 3"から値を取得します。

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

インデックス: - 1.

が 指定された文字が最初に出現する、この文字列内のインデックスを返しますから

カウントが開始されます。このStringオブジェクトによって表される文字列 に値chの文字が含まれている場合、最初のそのようなオカレンスのインデックス (Unicodeコード単位)が返されます。

indexOfは、4を返します。あなたがサブ4を取得すると

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

サブストリングは0から始まり、それは=から値を取得します。したがって、index+1に変更する必要があります。

int indx2= fCondition[i].indexOf("="); 
関連する問題