问题描述
我在 BLE 通知中以 20 字节块的形式获取数据。我正在将其转换为字符串,但我需要将所有字符串连接在一起。这是我的代码
characteristicRead.ValueUpdated += (o,e) =>
{
Device.BeginInvokeOnMainThread(() =>
{
//var readvalue2 = characteristics.Value;
var bytes = e.Characteristic.Value;
//var readvalue = await characteristics.ReadAsync();
BLEresultnew = System.Text.Encoding.UTF8.GetString(bytes);
Console.WriteLine(BLEresultnew);
var termsList = new List<string>();
//var joinedStrings = termsList.Join(",");
termsList.Add(BLEresultnew);
concat = String.Join(" ",termsList.ToArray());
//int listdata=termsList.Count();
//string valuel = listdata.ToString();
});
};
await characteristicRead.StartUpdatesAsync();
这是我需要加入并显示在字符串或数组中的日志中的数据。
01-07 13:07:07.340 I/mono-stdout( 4797): {"name":"Lime","stat
us":"Available"},{"n
01-07 13:07:07.448 I/mono-stdout( 4797): us":"Available"},{"n
ame":"Peach","statu
01-07 13:07:07.568 I/mono-stdout( 4797): ame":"Peach","statu
s":"Available"},{{"n
01-07 13:07:07.650 I/mono-stdout( 4797): s":"Available"},{{"n
我尝试过 string.Join 但它不起作用。我已经尝试过字符串生成器,但仍然没有加入所有字符串,如下所示。
Console.WriteLine(BLEresultnew);
StringBuilder sb = new StringBuilder(BLEresultnew);
//sb.Append(BLEresultnew);
concat= sb.Append(BLEresultnew).ToString();
有什么建议可以解决这个问题吗?
解决方法
StringBuilder
效率更高,但简单地这样做应该可以工作(假设 concat
是一个类级变量)
concat += BLEresultnew;