package com.tarena.test.B20;
import java.util.ArrayList;
import java.util.Scanner;
import java.util.StringJoiner;
/**
* TLV解析Ⅰ
* @author Administrator
* 输入:
* 第一行 31
* 第二层 32 01 00 AE 90 02 00 21 02 30 03 00 AB 32 31 31 02 00 32 33 01 22 CC
*
*/
public class B27 {
public static void main(String[] args) {
try(Scanner sc = new Scanner(System.in)){
String tag = sc.nextLine();
String[] stream16 = sc.nextLine().split(" ");
System.out.println(resultStr(tag,stream16));
}
}
public static String resultStr(String tagKey,String[] stream16) {
int index = 0;
while(index<stream16.length) {
String tag = stream16[index++];
String len1 = stream16[index++];
String len2 = stream16[index++];
//注意是 len2+len1 不是len1+len2
int len = Integer.parseInt(len2+len1, 16);
if(tag.equals(tagKey)) {
StringJoiner sj = new StringJoiner(" ");
for(int j=0;j<len;j++) {
sj.add(stream16[index++]);
}
return sj.toString();
}else {
index+=len;
}
}
return null;
}
}
了解知识点
1、题目中 value 两个字节的拼接顺序,拼接想法 转进行进制转换时,数据是异常的