質問: こんばんは、Javaに関して調べてもどうしてもわからず、皆様のお力を貸して頂きたく投稿しました。 データの結合についてです。 ArrayList に入った、データを最終的に1つのStringにするんですが、 それだけなら良いいんですが、byteArrayに「次データあり」というマークがある場合、 次のデータを受け取って、処理する事になります。 問題はここからなんです。 2度目のデータが1度目のデータ最終行からの数行を含んでいる場合がある時、 ---1度目データイメージ----data1 xxxxxxxxx aaaaaaa bbbbb ccccccc ")" ←(次データありマーク) ---2度目データイメージ----data2 bbbbb ←(前回のラスト2行目) ccccccc ←(前回のラスト行) zzzzzzzzzzz yyyy www "" ←(次データ無し) と、こんな具合の時はdata2の頭(bbbbb)を、data1のラストからを見比べて行って一致すれば、data1の一致行以下を消してdata2をくっつけるという方法を取ろうと思ってました。 ただコレでは、 ---data1----- xxxxxxxx aaaaaaaa bbbbb ccccccc bbbbb ) ---data2---- bbbbb ←前の ccccccc ←前の bbbbb ←前の zzzzzzzzzz ←ここから追加したいデータ yyyy www "" という、データだった場合、 ---結合後データ---- xxxxxxxx aaaaaaaa bbbbb ccccccc bbbbb ccccccc bbbbb zzzzzzzzzz yyyy www "" と、なってしまいます。 実際のデータはバイト配列の合間に改行マークがあるだけなんで、 そもそも行単位でこういう結合方法を取る事自体が間違っているのかもしれませんが、どうしても他に良い方法が思い浮かびません。 何か、良い解決策、アドバイス等ありましたら教えて下さい。 よろしくお願いします。
回答: 1.A:全文とB:全文で endsWithを実行する。 2.B:全文の頭から区切り文字が lastIndexでマッチする場所までの文字で「1」と同じこと実行する(繰り返して lastIndexが -1をかえすまでつづけるか 1が true を返すまで続ける。 3.endsWithで trueがかえってきたらそのときの文字数より後ろから substringを実行する。 こんな感じのことをしたいのかな??