如何在java中拆分向后的字符串

时间:2013-02-18 15:09:05

标签: java split

我有一个二进制字符串,我想分开。字符串长度可变,需要分成3个部分;标签,索引和块偏移量。我有索引的长度和块偏移,但不是标记,我试图将标记与字符串的其余部分分开。有没有办法在索引和块偏移的长度已知时执行此操作? (我想将它们向后拆分,因为标签长度可变,但索引和块偏移量是不变的)


示例(为简单起见,以十六进制编写):

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}

1 个答案:

答案 0 :(得分: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也是一个非常好的解决方案。