【发布时间】:2020-09-09 21:57:55
【问题描述】:
在我的服务器中运行程序时(信标检测代码),我将收到一个可变大小的字符串,名为io385。
字符串长度会根据检测到的信标数而有所不同:
- 一个信标:46 个字节(前 4 个字节无用,后 40 个重要,后 2 个无用);
- 两个信标:90 个字节(前 2 个字节无用,接下来的 40 个重要,接下来的 2 个无用);
- 三个信标:134 字节(前 2 个字节无用,接下来 40 个重要,接下来 2 个无用;
...
所以,有了这个,我的想法是删除任何无用的东西。即使字符串的大小可能不同,我总是想删除固定位置的字节(对于第一个信标,first 四个和 last 2;对于下一个信标,first 两个和 last 两个)。
我开始手动删除 2 beacon 字符串上的无用字节。但是,我想对此进行优化,以便无论字符串是 46 字节还是 xxxx 字节都可以自动工作(否则,我将不得不为每个可能的字符串长度手动编码字符删除过程)。
string io385 = "11210000AAAA0000AAAA0000AAAA0000AAAA0A0A0A0ABF210000BBBB0000BBBB0000BBBB0000BBBB0B0B0B0BBF";
string informacao = String.Copy(io385);
informacao = informacao.Remove(0,4).Remove(40,2).Remove(40,2).Remove(80,2);
int x = io385.Length;
int y = informacao.Length;
Console.WriteLine("Original String: {0}", io385);
Console.WriteLine("Copied String: {0}", informacao);
Console.WriteLine("Original String length: {0}", x);
Console.WriteLine("Copied String length: {0}", y);
【问题讨论】:
-
您说要删除“字节”,但您真的指的是字符吗?不同的字符集每个字符的字节数不同。
-
这个问题真的和
teltonika有关系吗?听起来这只是关于从字符串中删除字符。 -
迭代器方法,if(length = 46) substring else for loop i+=44 substring yield
-
@RufusL 我的错,是的,我的意思是字符,而不是字节。另外,是的,所有设备都是teltonika制造的,加上标签,因为它可能对其他人有用!
-
@MichaelRandall 我是 C# 新手(仅用 C/C++ 编写),但我理解你的想法!我将尝试基于此创建一个解决方案,并在完成后立即编辑帖子!