C# String.Split创建所有空数组值
我的代码使用StringBuilder从网络流构建字符串 然后,我将生成的StringBuilder(MyCompleteMessage)转换为一个带有C# String.Split创建所有空数组值,c#,arrays,string,C#,Arrays,String,我的代码使用StringBuilder从网络流构建字符串 然后,我将生成的StringBuilder(MyCompleteMessage)转换为一个带有ToString的字符串 在这一点上,字符串是好的 然后我尝试使用.Split()来分隔“~”上的字符串 当我试图用控制台显示结果字符串或将其写入文件时,我会得到:“System.string[]”反复出现 我的代码是: byte[] myReadBuffer = new byte[3000]; StringBuilder myCompleteM
ToString
的字符串
在这一点上,字符串是好的
然后我尝试使用.Split()
来分隔“~”上的字符串
当我试图用控制台显示结果字符串或将其写入文件时,我会得到:“System.string[]”反复出现
我的代码是:
byte[] myReadBuffer = new byte[3000];
StringBuilder myCompleteMessage = new StringBuilder();
int numberOfBytesRead = 0;
char[] separatingChars = {'~'};
// Incoming message may be larger than the buffer size.
do
{
numberOfBytesRead = stream.Read(myReadBuffer, 0, myReadBuffer.Length);
myCompleteMessage.AppendFormat("{0}", Encoding.ASCII.GetString(myReadBuffer, 0, numberOfBytesRead));
}
while (stream.DataAvailable);
string tosep = myCompleteMessage.ToString();
string[] words = tosep.Split(separatingChars);
Console.Write(tosep);
StreamWriter file = File.AppendText("c:\\Users/edegraaf/Desktop/test.txt");
foreach(string i in words)
{
file.WriteLine(words);
}
file.Close();
字符串示例:
2017-05-31 19:36:20.143767~24.125C 2017-05-31 19:37:21.075028~30.25C 2017-05-31 19:38:21.953599~23.937C 2017-05-31
19:47:34.447627~23.937C 2017-05-31 19:47:52.717755~23.812C
2017-05-3119:49:27.846434~24.0C 2017-05-3120:01:08.865726~24.125C
2017-06-01 14:38:52.948025~23.375C 2017-06-01 14:39:53.872969~23.187C
2017-06-01 14:41:05.187961~28.625C 2017-06-01 15:01:48.22
有人能告诉我为什么我会得到“
System.String[]
”?不是写入数组的值,而是尝试使用以下命令将数组本身写入文件:
file.WriteLine(words);
而您需要做的是,为了写入值:
foreach(string i in words)
{
file.WriteLine(i);
}
将file.writeline(words)更改为file.writeline(i)。它可以工作file.WriteLine(words);应为file.WriteLine(i);好吧,这很明显,我现在觉得自己很愚蠢。谢谢你的迅速回复。