一个关于byte数组转换为字符串的有关问题
一个关于byte数组转换为字符串的问题.
假设定义一个数组为1024
Dim bytes(1024) As Byte
然后接收一个数据
netStream.Read(bytes, 0, bytes.Length)
这时候数组里有一些数据,但是并没有充满数组
数组内容如下
75
75
75
75
75
0
0
0
0
0
0
.
.
.
这时候定义一个string来接收byte数组的内容
Dim data As String = Encoding.ASCII.GetString(bytes).Trim()
这时候奇怪的问题出现了
data的内容是 "KKKKKKK# "
但是data.Length的值却是1024
这是什么原因呢?
我开始是怀疑data中存在不可见的空格或空于是我用了Trim()
和Regex.Replace(_data.Trim(), "\\s+ ", " ")(用正则表达式除去所有空格)
但是但是data.Length还是1024
请大家解答,谢谢!
------解决方案--------------------
int l = netStream.Read(bytes, 0, bytes.Length);
Dim data As String = Encoding.ASCII.GetString(bytes, 0, l).Trim();
试试这个
假设定义一个数组为1024
Dim bytes(1024) As Byte
然后接收一个数据
netStream.Read(bytes, 0, bytes.Length)
这时候数组里有一些数据,但是并没有充满数组
数组内容如下
75
75
75
75
75
0
0
0
0
0
0
.
.
.
这时候定义一个string来接收byte数组的内容
Dim data As String = Encoding.ASCII.GetString(bytes).Trim()
这时候奇怪的问题出现了
data的内容是 "KKKKKKK# "
但是data.Length的值却是1024
这是什么原因呢?
我开始是怀疑data中存在不可见的空格或空于是我用了Trim()
和Regex.Replace(_data.Trim(), "\\s+ ", " ")(用正则表达式除去所有空格)
但是但是data.Length还是1024
请大家解答,谢谢!
------解决方案--------------------
int l = netStream.Read(bytes, 0, bytes.Length);
Dim data As String = Encoding.ASCII.GetString(bytes, 0, l).Trim();
试试这个