华为2019秋招笔试Java实现(4)
笔试日期2019年8月21日
第一题(100分)
题目描述
说明:
实现报文转义功能,报文中如果出现0x0A,转义成为2个字节0x12 0x34,如果出现0x0B,转义成为2个字节0xAB 0xCD,其它报文字节保持不变。
输入描述
1、输入的报文为16进制,输入报文长度不超过127,输入的报文第一个字节为报文长度,第一个字节(报文长度)算正式报文的一部分,但是不参与转义
2、输入的报文每个字节用空格隔开
输出描述
1、输出为转义后的报文,转义后的报文长度也不超过255,输出的报文第一个字节算正式报文的一部分,为转义后的报文长度
2、输出的报文内容都为大写的16进制,输出报文为16进制,前不带0x前缀
3、输出的报文每个字节用空格隔开
示例
输入
8 1 2 3 4 5 6 A
输出
9 1 2 3 4 5 6 12 34
说明
输入报文 8 1 2 3 4 5 6 A 解释:8为报文长度
输出报文 9 1 2 3 4 5 6 12 34 解释:9位输出报文长度,12 34为输入报文中的A转义后的报文
分析
这题难度不大,只要按空格分隔,逐个检查替换即可,最后转义后的长度是转义前的长度加上替换的数量。
要注意长度也是16进制,若长度为10就要显示成A。
解答
import java.util.Scanner;
public class Main1 {