2016-04-01 8 views
0
 String[][][] a=new String[5][5][5]; 
     HttpSession session = request.getSession(); 
     char[][] split = null; 


     split=(char[][]) session.getAttribute("chardata"); 
     int[][][] plaint = (int[][][]) session.getAttribute("root"); 
     int r1=plaint.length; 
     for (int i = 0; i < r1; i++) { 
      int r2=plaint[i].length; 
      for (int j = 0; j < r2; j++) { 
       int r3=plaint[i][j].length; 
       for (int k = 0; k < r3; k++) { 
        if(plaint[i][j][k]!=0){ 
         a[i][j][k]= sha256(Integer.toString(plaint[i][j][k])); 
         out.println("data:"+split[i][j]+" <br> hash:" + a[i][j][k]+"<br>"); 

        } 
       } 
       session.setAttribute("hashed",a); 
       out.println(" <br><br>"); 
      }out.println(" <br>"); 
     } 
     out.println("</body>"); 
     out.println("</html>"); 
     RequestDispatcher rd = request.getRequestDispatcher("redirection"); 
     rd.forward(request,response); 

これは私のサーブレットです。空白の空の配列をフィルタリングするにはどうすればよいですか?

Sha256は値をハッシュし、16進文字列を[] [] []に返します。

出力の一部である:

データ:S
ハッシュ:d6d824abba4afde81129c71dea75b8100e96338da5f416d2f69088f1960cb091

データ:H
ハッシュ:ad48ff99415b2f007dc35b7eb553fd1eb35ebfa2f2f308acd9488eeb86f71fa8

データ:
ハッシュ:ad48ff99415b2f007dc35b7eb553fd1eb35ebfa2f2f308acd9488eeb86f71fa8

変数plaint [] [] []には、ハッシュされるために送信される空の値もあります。私はこれらの空の値をフィルタリングすることができません。それには空白があるようですが、システムはこれを空白とみなしません。値もnullとはみなされません。

Split [] []はplaint [] [] []から派生したものと同じ問題を抱えています。それはユーザーによって入力された値と残りのインデックス値として文字 ''を持っています

どのようにフィルタリングしますか?

+1

デバッガを使用して、デバッガが持つ値を調べます。それが空白であることが確かであれば、Character.isWhitespaceメソッドを試してください。 – agilob

+0

それを試してみてください。デバッガはvalueを ''として表示します。 Character.isWhitespaceはfalseを返します。 – user2329435

+0

それから値はありません、配列は空です、 'array.length!= 0'を試してください – agilob

答えて

0

'が'の文字は、null(/ u0000)を意味します。だから:

if(split[i][j]!=0) 

NULLをチェックすることで問題を解決することができます。

関連する問題