有一小段代码,其含义是仅将数组中的数字(其中相似的数字 123.1.512.61 以不同的组合出现)传输到文本框(例如:firstBox.Text 中的 123;secondBox.Text 中的 1 等) . ) . 但是出了点问题,目前我将所有内容都排成一行,一次一个字符(1;2;3;.;等等。)
如何解决?
public void SetByteArray(string userOutput)
{
byte[] userOutputBytes = new byte[4];
if (userOutput != null)
{
userOutputBytes = userOutput.Split(new[] {'.'}, StringSplitOptions.RemoveEmptyEntries)
.Select(s => Convert.ToByte(s, 8))
.ToArray();
}
else
{
userOutput = "123.0.10.321";
userOutputBytes = userOutput.Split(new[] {'.'}, StringSplitOptions.RemoveEmptyEntries)
.Select(s => Convert.ToByte(s, 8))
.ToArray();
}
firstBox.Text = Convert.ToString(userOutput[0]);
secondBox.Text = Convert.ToString(userOutput[1]);
thirdBox.Text = Convert.ToString(userOutput[2]);
fourthBox.Text = Convert.ToString(userOutput[3]);
}
此行有错误
在此操作中,您从 userOutput 中获取 0 字符,即“123.0.10.321”。
你得到“1”。
您还需要获取令牌数组的第一个元素,而不是字符串。
在您的代码中是
userOutputBytes
.也就是说,您将输入和输出数据
userOutputBytes
和userOutput
.另外,你从 strings 中创建一个 bytes 数组
Convert.ToByte(s, 8)
,然后将其转换回 stringConvert.ToString
,我看不出这有什么意义。PS:main函数一定要
if
取出来。