1

文字列を区切るときに奇妙な問題に遭遇しました (最終的には < と > の文字で区切る必要があります)。これを画面に出力できますが、テキストファイルに書き込もうとすると、arrayIndexOutOfBoundsException が発生します。

    System.out.println(s[index]);
    String[] finalSplit = s[index].split("\\>");
    System.out.println(s[index]+finalSplit.length);
    System.out.println(finalSplit[1]);
    bufOut.write(finalSplit[1]);

上記の出力例は次のとおりです。

    <env:MessageSentDateTime>2011-11-17T11:22:33.456Z</env:MessageSentDateTime>
    <env:MessageSentDateTime>2011-11-17T11:22:33.456Z</env:MessageSentDateTime>2
    2011-11-17T11:22:33.456Z</env:MessageSentDateTime

    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
          at Main.main(main.java:81)

分割を行わない場合は、すべてをテキスト ファイルに書き込むことができますが、中間の情報のみが必要です。

私が間違っている場所について何か提案はありますか?

4

2 に答える 2

0

どちらを使用しているのかわかりませんBufferedOutStreambyte[]以下は正常に動作します(メソッドに渡す必要がありますwrite):

String s=
    "<env:MessageSentDateTime>2011-11-17T11:22:33.456Z</env:MessageSentDateTime>";
String[] finalSplit  = s.split("\\>");
BufferedOutputStream bos = new BufferedOutputStream(
                                 new FileOutputStream(new File("delimited.txt")));
bos.write(finalSplit[1].getBytes());
bos.close();

それは書いています:2011-11-17T11:22:33.456Z</env:MessageSentDateTimeファイルにdelimited.txt

于 2012-11-23T15:05:55.580 に答える
0

列をなして

System.out.println(finalSplit[1]);

分割がすべて finalSplit[0] に移動したため、存在しない要素 1 にアクセスしています。分割区切り文字を変更してください (例: ">")

于 2012-11-23T15:02:05.033 に答える