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

news/2024/7/8 3:31:52

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


http://lihuaxi.xjx100.cn/news/1985618.html

相关文章

Java代码审计原生反序列化CC链跟踪分析

希望和各位大佬一起学习&#xff0c;如果文章内容有错请多多指正&#xff0c;谢谢&#xff01; 个人博客链接&#xff1a;CH4SER的个人BLOG – Welcome To Ch4sers Blog 在前一篇文章我分析了Commons Collections1链​​​​​​​&#xff0c;其中跟链的顺序是&#xff1a…

[VulnHub靶机渗透] CTF7

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋 🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步…

LCD液晶屏驱动详解(3)

2.2、LCD控制寄存器LCDCON2 用于设置垂直方向各信号的时间参数&#xff0c;格式如下表所示&#xff1a; 功能位说明VBPD[31:24]VSYNC信号脉冲之后&#xff0c;还要经过(VBPD1)个HSYNC信号周期&#xff0c;有效的行数据才出现&#xff1b;LINEVAL[23:14]LCD的垂直宽度&#xf…

MySQL数据库面试知识点

1、数据库基础&#xff1a; MySQL是一个开源的关系型数据库管理系统&#xff0c;用于存储、管理和检索数据。它支持多种存储引擎&#xff0c;包括InnoDB、MyISAM等。MySQL是由瑞典公司MySQL AB开发&#xff0c;后来被Sun Microsystems收购&#xff0c;最终被甲骨文公司(Oracle…

Java学习5--基础知识

JAVA 流程控制 用户交互scanner 顺序结构 选择结构 循环结构 break & continue 练习 用户交互scanner/Scanner 对象 java提供的工具&#xff0c;用来获取用户输入。 java.util.Scanner是Java5引入的特征&#xff0c;用的时候程序最顶上加引用源 import java.util.Sc…

Vue.js动画库

1、vue2-animate https://animate.style/ 地址&#xff1a;https://www.npmjs.com/package/vue2-animate一个可以在你的网站中即用型跨浏览器动画库&#xff0c;非常适合主页、滑块和动画引导提示。这是Animate.css 的一个端口&#xff0c;用于 Vue.js 2.0/3.0 和Alpines.js …

【系统DFX】如何诊断占用过多 CPU、内存、IO 等的神秘进程?

热门面试问题&#xff1a;如何诊断占用过多 CPU、内存、IO 等的神秘进程&#xff1f; 下图展示了 Linux 系统中有用的工具。 &#x1f539;’vmstat’ - 报告有关进程、内存、分页、块 IO、陷阱和 CPU 活动的信息。&#x1f539;’iostat’ - 报告系统的 CPU 和输入/输出统计信…

Redis应用(1)缓存(1.2)------Redis三种缓存问题

三者出现的根本原因是&#xff1a;Redis缓存命中率下降&#xff0c;请求直接打到DB上了。 一、 缓存穿透&#xff1a; 1、定义&#xff1a; 缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在&#xff0c;这样缓存永远不会生效&#xff0c;这些请求都会打到数据库。…