c#windows应用程序数组和字符串拆分
本文关键字:字符串 拆分 数组 应用程序 c#windows | 更新日期: 2023-09-27 18:20:13
我正在尝试在C#中拆分字符串,并使用以下代码:
string str = Encoding.ASCII.GetString(e.Data);
string[] words = str.Split(' '.ToArray());
但我在Split(' '.ToArray());
上有一个错误,我想分割文本并将其保存为数组,例如:
string input = '1 2 3 4 5 6 7';
阵列为:
string[] array = input.split(' ');
output:
array[0] = 1
array[1] = 2 ....
我试过这种方法,但它们不起作用,我不知道为什么。
来自Exception的消息是:"index was outside the bounds of the array"
这是所有的代码:
void _spManager_NewSerialDataRecieved(object sender, SerialDataEventArgs e)
{
if (this.InvokeRequired)
{
// Using this.Invoke causes deadlock when closing serial port, and BeginInvoke is good practice anyway.
this.BeginInvoke(new EventHandler<SerialDataEventArgs>(_spManager_NewSerialDataRecieved), new object[] { sender, e });
return;
}
int maxTextLength = 1000; // maximum text length in text box
if (tbData.TextLength > maxTextLength)
tbData.Text = tbData.Text.Remove(0, tbData.TextLength - maxTextLength);
// This application is connected to a GPS sending ASCCI characters, so data is converted to text
string str = Encoding.ASCII.GetString(e.Data);
//tbData.AppendText(str);
//tbData.ScrollToCaret();
string[] words = str.Split();
try
{
tbData.Text = words[1].ToString();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
richD.AppendText(str);
richD.ScrollToCaret();
}
希望你能帮忙。或者,如果您有更好的想法,可以将接收到的数据插入datagridview
解决方案就在您的问题中。
在给定的代码中,您试图在不指定参数的情况下拆分字符串。
string[] words = str.Split();
这不会将字符串拆分为多个部分。它将只在数组中创建一个元素。当您尝试访问word
数组中索引1中的第二个元素时。
tbData.Text = words[1].ToString();
这将给出一个错误,即索引1上没有元素-数组中的元素计数仅为索引0处的1。
因此,您可以从Index 0中获取字符串,也可以在Split()
函数中指定参数。
string[] words = str.Split(' ');