0

分割したいバイナリ文字列があります。文字列は可変長で、3 つのセクションに分割する必要があります。タグ、インデックス、およびブロック オフセット。インデックスの長さとブロック オフセットはありますが、タグはありません。タグを残りの文字列から分離しようとしています。インデックスの長さとブロックオフセットがわかっているときにそれを行う方法はありますか? (タグは可変長ですが、インデックスとブロックオフセットは一定であるため、後方に分割したい)


例 (簡単にするために 16 進数で記述):

String[1]: 400341a0
String[2]: df7c48
index length: 2 hex
block offset length: 3 hex    
Output[0]: {400, 34, 1a0}
Output[1]: {d, f7, c48}
4

1 に答える 1

2

+-1はわかりませんが、いいと思います。

int length = s.length;
int blockOffsetIndex = length - BLOCK_OFFSET_LENGTH;
blockOffset = s.substring(blockOffsetIndex  - 1, length );

int indexIndex = blockOffsetIndex - INDEX_LENGTH;
indexStr = s.substring(indexIndex - 1, indexIndex + INDEX_LENGHT);

rest = s.substring(0, indexIndex -1);

@sdk が示唆したように、Apache StringUtilsも非常に優れたソリューションです。

于 2013-02-18T15:12:27.703 に答える