2012-04-14 11 views
0

誰かがこのコードになぜ穴があるのか​​教えてもらえますか?array [0] [4]?しかしRegexを使用したJava Arrayホール

public class Random{ 

    public static void main (String []args){ 

     String [][] array={{"This is a test. A hole here"}}; 

     for(int i=0;i<array.length;i++){ 
      String temp=array[i][0]; 

      array[i]=temp.split("[\\:., ]"); 
     } 

     System.out.print(array[0][4]); 
    } 
} 

私は区切り文字にプラス記号を追加するとき、( "[\:。、] +")、私は正しい出力を取得します。

public class Random{ 

    public static void main (String []args){ 

     String [][] array={{"This is a test. A hole here"}}; 

     for(int i=0;i<array.length;i++){ 
      String temp=array[i][0]; 
      array[i]=temp.split("[\\:., ]+"); 
     } 

     System.out.print(array[0][4]); 
    } 
} 

プラス記号がこの穴を削除してこの問題を解決する理由はありますか?私はどんな提案やコメントにもオープンしています。はい、私は初心者です。 array[i]=temp.split("[\\:., ]");

答えて

1

あなたの文字列がここに分割される:

This is a test. A hole here 
    ^^^ ^^^^

ですから、array[4]で空の文字列を取得します。

array[i]=temp.split("[\\:., ]+");とすると、 "。"を1つの "分割点"に結合します。そのため、分割されません。

+0

ありがとうございました!!!! – user1299661