


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 两个字节的拼接顺序,拼接想法 转进行进制转换时,数据是异常的



















