字符串填充到指定长度
一、需求
在传输一个文件的时候,传输的是二进制数据,整个数据文件的结构为:
文件名称 + 文件本身
其中文件名称固定占30个byte,存在的情况就是,有的文件名比较长,有的文件名比较短,所有要补足30个字节。
| 数据构成 | 长度(byte) | 示例1 | 示例2 |
|---|---|---|---|
| 头 | 30 bytes | acb.txt | wueoruwousjlasjljgljljgaj.docx |
| 数据 | N bytes | byte[1980] | byte[2049] |
二、自己臆想的补足方式
文件名原本有8个字节长,我自己创一个12字节的数组 (new byte[12])补在后面。
还原成string的时候,我用Trim()剔除12字节的空白信息。
var strData = Encoding.UTF8.GetBytes("实验报告.doc");//8 bytes
var blankData = new byte[12]; //生成一个12bytes的空数组,用来补足20字节
var allData = new List<byte>();
allData.AddRange(strData); //合并
allData.AddRange(blankData); //合并var parseStr = Encoding.UTF8.GetString(allData.ToArray()); //还原成string
Debug.Log($"[{parseStr.Length}]"); //20
Debug.Log($"[{parseStr.Trim().Length}]"); //20
Debug.Log($"[{parseStr.Trim()}]"); //[实验报告.doc ]
实践证明【var blankData = new byte[12]】,空白数组blankData 里面装的东西不是空白(space)。
三、正确的方式
- 1、先把字符串用space扩充到30个字符
- 2、string转成byte
- 3、发送
- 4、接收后转成string
- 5、用Trim()去掉space
var cmdStr1 = "实验报告.doc";
var cmdPad = cmdStr1.PadRight(30); //用space扩充到30个字符
var parseStr2 = Encoding.UTF8.GetBytes(cmdPad);
var parseStr3 = Encoding.UTF8.GetString(parseStr2.ToArray());Debug.Log($"[{parseStr3.Length}]"); //30
Debug.Log($"[{parseStr3.Trim()}]"); //[实验报告.doc]
相关文章:
字符串填充到指定长度
一、需求 在传输一个文件的时候,传输的是二进制数据,整个数据文件的结构为: 文件名称 文件本身 其中文件名称固定占30个byte,存在的情况就是,有的文件名比较长,有的文件名比较短,所有要补足30…...
macOS虚拟机安装全过程(VMware)
作为一名忠实果粉,我最大的愿望就是能够拥有一台Macbook,体验macOS,但是作为学生党,这价钱,贵到离谱啊~~~ 不过,VMware这个神器,可以解决一切问题:既然macOS可以在Macbook上运行&…...
第十三届蓝桥杯A组:选数异或——三种解法(线段树、DP、ST表)
[蓝桥杯 2022 省 A] 选数异或 题目描述 给定一个长度为 nnn 的数列 A1,A2,⋯,AnA_{1}, A_{2}, \cdots, A_{n}A1,A2,⋯,An 和一个非负整数 xxx, 给定 mmm 次查询, 每次询问能否从某个区间 [l,r][l, r][l,r] 中选择两个数使得他们的异或等于 xxx 。 输入格式 输入的第一…...
【CTF】CTF竞赛介绍以及刷题网址
CTF(Capture The Flag)中文一般译作夺旗赛,在网络安全领域中指的是网络安全技术人员之间进行技术竞技的一种比赛形式。CTF起源于1996年DEFCON全球黑客大会,以代替之前黑客们通过互相发起真实攻击进行技术比拼的方式。发展至今&…...
Springboot怎么优雅实现大文件的上传
前言在软件工程里,在处理“大”的时候一直是一个难点和难点,如并发大、数据量大、文件大,对硬件进行升级可以解决一些问题,但这并不最聪明的办法,而对于老板来说,这也不是成本最小的办法。作为开发人员来说…...
2月编程语言排行榜新鲜出炉,谁又摘得桂冠?
近日,TIOBE公布了2023年2月编程语言排行榜,本月各个语言表现如何?谁又摘得桂冠?一起来看看吧! TIOBE 2月Top15编程语言: 详细榜单查看TIOBE官网 https://www.tiobe.com/tiobe-index/ 关注IT行业的小伙伴…...
机器学习中的数学原理——模型评估与交叉验证
惭愧惭愧!机器学习中的数学原理这个专栏已经很久没有更新了!前段时间一直在学习深度学习,paddlepaddle,刷题专栏跟新了,这个专栏就被打入冷宫了。这个专栏名为白话机器学习中数学学习笔记,主要是用来分享一…...
JAVA开发(JSP的9大内置对象和4大作用域)
背景: 在springboot横行的javaweb开发中,现在的后端开发工程师基本不需要写前端JSP页面。但是作为web开发工程师,不懂JSP的原理和作用,几乎是不行的。 JSP技术介绍: JSP(全称Java Server Pagesÿ…...
(4)EKF失控保护
文章目录 前言 4.1 什么时候会触发? 4.2 当失控保护触发时,会发生什么?...
数论----质数的求解(C/C++)
CSDN的uu,你们好呀,今天我们要学习的内容是数论哦!这也是算法题中的一类题目吧。记好安全带,准备发车咯!🚀学习数论的意义📢算法导论说:“数论曾经被视为一种虽然优美但却没什么用处…...
【电赛MSP430系列】GPIO、LED、按键、时钟、中断、串口、定时器、PWM、ADC
文章目录MSP430一、GPIO二、点亮LED三、按键控制LED四、更改主时钟五、串口通信六、串口中断七、外部中断八、定时器九、定时器中断十、PWM十一、ADCMSP430 MSP430 是德州仪器(TI)一款性能卓越的超低功耗 16 位单片机,自问世以来,…...
【Linux】进程理解与学习(Ⅱ)
环境:centos7.6,腾讯云服务器Linux文章都放在了专栏:【Linux】欢迎支持订阅🌹相关文章推荐:【Linux】冯.诺依曼体系结构与操作系统【Linux】进程理解与学习(Ⅰ)浅谈Linux下的shell--BASH前言章节…...
vscode 爽到起飞的快捷键
这里写目录标题1. 窗口操作2. 代码编辑3. 批量操作4. 错误处理1. 窗口操作 文件之间切换: CtrlTab 切出一个新的编辑器窗口(最多3个): Ctrl\ 切换左中右3个编辑器窗口的快捷键: Ctrl1 Ctrl2 Ctrl3 2. 代码编辑 代码格式化: ShiftAltF 向上或向下移动一行: Alt…...
vs +qt 打包.cpp和.h为DLL文件
文章目录一 编译成库1 创建一个Qt library 项目2,将已有的文件拷贝到项目目录下3 在项目中添加现有项4,拷贝头文件到需要暴露给外面使用的类的头文件中5 拷贝xxx_EXPORT的宏到需要被暴露的类的名前面6 然后点击编译 就完成了。得到的dll文件在debug里面二…...
echarts有滑块
vue下使用echarts折线图及其横坐标拖拽功能 drawLine() {let that this,lineDate [],dispatchCount [],finishCount [],newCount [];let param {// 参数};axios.post(url, param).then(function(response) {let rs response.data.data;if (rs ! undefined && rs…...
MATLAB绘制ROC曲线
ROC曲线(Receiver Operating Characteristic Curve) 1 简介 ROC曲线是用于评估二元分类模型(如Logistic回归)表现优劣的一种工具,其横轴表示假阳性率(false positive rate,FPR),即实际为负例但…...
ChatGPT前传
文章目录前言GPT概述GPT-1代GPT-1 学习目标和概念介绍GPT-1 训练数据集GPT-1 模型结构和应用细节GPT-1 效果性能和总结GPT-2代GPT-2 学习目标和概念介绍GPT-2 训练数据集GPT-2 模型结构和应用细节GPT-2 性能效果和总结GPT-3代GPT-3 学习目标和概念介绍GPT-3 训练数据集GPT-3 模…...
我的十年编程路 2020年篇
我出生在1990年,2020年到来的时候,我完成了一项成就:奔三。同时,也开启了新的征程:奔四。 2020年的春节是在广州的丈母娘家度过的,春节后大概是初五,或者是初六,我和媳妇就返回天津…...
力扣-SQL【入门】
https://leetcode.cn/study-plan/sql/?progressxhqm4sjh 目录选择595. 大的国家1757. 可回收且低脂的产品584. 寻找用户推荐人183. 从不订购的客户排序 & 修改1873. 计算特殊奖金627. 变更性别196. 删除重复的电子邮箱选择 595. 大的国家 # Write your MySQL query state…...
Vue中组件到底是什么
1.先说结论: Vue中组件本质是一个名为VueComponent的构造函数,且不是程序员定义的,是Vue.extend生成的。 2.我们使用组件时发生了什么? 比如定义了一个school,然后在页面上使用它 我们只需要写 < school/ > 或< school &…...
https://docker.m.daocloud.io/v2 访问失败
目录 2. 测试 mirror 能不能访问(很关键) 正常: 修改docker-compose ① 改 compose ② 拉镜像 ③ 启动 2. 测试 mirror 能不能访问(很关键) 比如: curl -I https://docker.m.daocloud.io/v2/ 正常&…...
Qwen-Image-2512部署教程:阿里云/腾讯云轻量服务器512MB内存精简部署方案
Qwen-Image-2512部署教程:阿里云/腾讯云轻量服务器512MB内存精简部署方案 1. 前言:像素艺术生成新选择 你是否遇到过这样的困扰:想要创作独特的像素风格作品,却苦于没有专业的美术功底?或者需要为游戏开发快速生成大…...
零服务器生产环境监控与日志管理终极指南:保障Web应用稳定运行的10个关键策略
零服务器生产环境监控与日志管理终极指南:保障Web应用稳定运行的10个关键策略 【免费下载链接】zero Zero is a web server to simplify web development. 项目地址: https://gitcode.com/gh_mirrors/ze/zero Zero Server是一款革命性的Web服务器,…...
PyTorch 2.8镜像效果展示:Stable Diffusion XL在RTX 4090D上的推理吞吐量
PyTorch 2.8镜像效果展示:Stable Diffusion XL在RTX 4090D上的推理吞吐量 1. 环境配置与硬件优势 1.1 镜像核心配置 本镜像基于RTX 4090D 24GB显卡深度优化,搭载CUDA 12.4和PyTorch 2.8框架,专为高性能AI推理任务设计。硬件配置包含10核CP…...
Gin 日志体系详解
Gin 日志体系详解 本文基于 Gin 企业开发的真实场景,从原生日志能力到主流日志工具选型,全程以实用为核心,附带可直接复制的集成代码、最佳实践和踩坑指南,解决 Gin 开发中日志的全场景需求。 一、Gin 原生日志体系详解 Gin 自带了…...
Meixiong Niannian画图引擎CFG引导实验:从3.0到12.0的画质变化图谱
Meixiong Niannian画图引擎CFG引导实验:从3.0到12.0的画质变化图谱 1. 引言:为什么CFG系数如此重要? 如果你用过AI画图工具,一定遇到过这样的困惑:明明描述词写得很好,为什么生成的图片要么太“放飞自我”…...
Llama-3.2V-11B-cot应用场景:文化遗产数字化中壁画破损区域逻辑复原
Llama-3.2V-11B-cot应用场景:文化遗产数字化中壁画破损区域逻辑复原 1. 项目背景与价值 壁画作为人类文明的重要载体,在长期保存过程中常面临褪色、剥落、破损等问题。传统修复工作依赖专家经验,存在效率低、成本高、主观性强等痛点。Llama…...
UniApp微信小程序分享页的‘回家’按钮:一个getCurrentPages()的巧妙应用
UniApp微信小程序分享页的智能导航设计:基于页面栈的优雅解决方案 在移动应用生态中,微信小程序因其轻量化和社交属性获得了广泛应用。作为开发者,我们经常面临一个看似简单却影响用户体验的核心问题:当用户通过分享链接进入小程序…...
收藏!8年传统后端转AI应用开发,2026年实战干货全拆解(小白/程序员必看)
本人做了8年传统后端开发,去年顶着30的年龄焦虑,果断跳出舒适圈,咬牙转型AI应用开发。这一年里,面试被面试官追问到哑口无言、项目落地踩遍各种坑、熬夜调试到凌晨都是常态,但所有付出都有回报:薪资直接上涨…...
3个颠覆性技巧:让Mermaid文本图表成为你的效率倍增器
3个颠覆性技巧:让Mermaid文本图表成为你的效率倍增器 【免费下载链接】mermaid mermaid-js/mermaid: 是一个用于生成图表和流程图的 Markdown 渲染器,支持多种图表类型和丰富的样式。适合对 Markdown、图表和流程图以及想要使用 Markdown 绘制图表和流程…...
