3

每次打开串口时都会收到以下字符串,该字符串用于检查所连接设备正在运行的 BIOS 版本和固件版本。

细绳:

v03400216000000001FC5H240108206B-RAMBOX=[03]

现在检查 Bios 版本和固件版本的唯一重要字符如下:

03400216

注意:bytearray是 abyte[]转换为 astring并填充:

v03400216000000001FC5H240108206B-RAMBOX=[03]

我尝试使用以下代码实现此目的:

string versiontext = bytearray.Trim();
bytearray = versiontext.Remove(0, 2);
versiontext = bytearray.Remove(9, bytearray.Length);
bytearray = versiontext;

但这没有成功,并导致以下异常:

Index and count must refer to a location within the string.

我应该使用Regex, 而不是.Remove?

编辑:

@lazyberezovsky 帮助我,我只是忘记了.Substring().

string result使用以下代码实现了:

if (bytearray.Contains("RAMBOX"))
{
       string Versionstring = bytearray.Substring(1, 8);
       bytearray = Versionstring;
}
4

1 回答 1

6

简单的子字符串呢?

var input = "v03400216000000001FC5H240108206B-RAMBOX=[03]";
var version = input.Substring(1, 8);
于 2013-03-11T10:53:51.197 回答