每日一道算法题 15(2023-12-28)TLV解析Ⅰ

发布时间:2024年01月23日

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

文章来源:https://blog.csdn.net/zhen340417593/article/details/135539876
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。