2017-04-09 11 views
0

私はこの文字列を分割して、各値を独自の変数に割り当てることができます。しかし、私はそれが境界のない例外として表示されないように見える。 lineSplit1 [0]だけで印刷すると、問題はlineSplit1 [1]を含めると始まります。ここで私はテキストファイル "Friday_7/4/2017_12:50_13:50¬Test¬"から分割しようとしている行の1つです文字列を分割する際の境界外の例外java

+3

あなたはそれをデバッグしましたか? 'lineSplit'に2つの要素が含まれていると思いますか? – Carcigenicate

+0

@Carcigenticate debuggintは役に立ちませんでした。また、lineSplit1 [0]を印刷すると、金曜日に印刷されます。次の変数を見つけて割り当てるというすべての提案は、私が正しくそれをしたことを示唆しています。それが例外を理解していない理由です。 – hilario

+0

'repeatData.txt'ファイルの内容を表示できますか? – Jezor

答えて

0

よくある問題は次のとおりです: java.lang.ArrayIndexOutOfBoundsException それはどういう意味ですか?存在しない配列の位置を取得しようとしていることを示しています(例のlineSplit1 [1]では)、なぜこれが起こりますか?おそらくあなたのファイルに文字 "¬"が2回以上含まれていないことがあります。例えば

この

String string = "Fridays7/4/2017d12:50d13:50dTestd"; 
      String[] lineSplit1 = string.split("¬"); 
      for(String s: lineSplit1){ 
       System.out.println(s); 
       System.out.println(lineSplit1.length); 
       String day1 = lineSplit1[0]; 
       String date1 = lineSplit1[1]; 
       System.out.println(day1+""+date1); 
      } 
    } 

を見て、私はあなたと同じ問題を抱えていますが、この使用することができます

String string = "Fridays7/4/2017d12:50d13:50dTestd"; 
    String[] lineSplit1 = string.split("¬"); 
    for(String s: lineSplit1){ 
     System.out.println(s); 
     String day1 = lineSplit1[0]; 
     String date1 = null; 
     if(lineSplit1.length>1) 
     date1= lineSplit1[1]; 
     else 
      date1="thisisANullDate"; 
     System.out.println(day1+""+date1); 
    } 

}

今、私は私のプログラムを告げ、私の配列をチェックしますそれが正しい場合は1より大きいですが、私は日付が1であることを知っています。本当にうまくいけば、私は何でもできます。

1.あなたが持っているすべての行が同じであることを確認してください。(いつも同じ利用者がいることを知っているので分割しています) 2.何か起こらない場合は、私としてバリデーターを使用してください。

は、それはあなたに

0

を助けることを願って、この方法を試してみてください:

public static void main(String[] args){ 
    String testStr="Friday¬7/4/2017¬12:50¬13:50¬Test¬";     
    String[] lineSplit1 = testStr.split("¬"); 
    if (lineSplit1.length>1){ 
     System.out.println("Number of words: "+lineSplit1.length); // print using index=1 
     System.out.println(lineSplit1[1]); 
    } 
    Scanner scanner = new Scanner(testStr); 

    while(scanner.hasNext()){      
    System.out.println(scanner.next());      
    } 
    scanner.close(); 
} 
関連する問題