每次打开串口时都会收到以下字符串,此字符串用于检查连接设备运行的BIOS版本和固件版本。
字符串:
v03400216000000001FC5H240108206B-RAMBOX=[03]
现在,检查Bios版本和固件版本的唯一重要指标如下:
03400216
注意:bytearray
是byte[]
转换为string
并填充:
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;
}
答案 0 :(得分:6)
简单子字符串怎么样?
var input = "v03400216000000001FC5H240108206B-RAMBOX=[03]";
var version = input.Substring(1, 8);