C#如何编辑不同的字符串并在文本框中给出输出
我正在为我的NFC卡开发GUI 现在,我使用的设备中有一项功能,可以在读卡器模式下切换,识别卡类型,读取uid、ATQA、SAK,并将其作为C#如何编辑不同的字符串并在文本框中给出输出,c#,C#,我正在为我的NFC卡开发GUI 现在,我使用的设备中有一项功能,可以在读卡器模式下切换,识别卡类型,读取uid、ATQA、SAK,并将其作为字符串返回 我的想法如下: var identify = SendCommand($"IDENTIFY").ToString(); txt_identify.Text += $"{Environment.NewLine}"; txt_identify.Text += ($"--Card Identification--{Environment.NewLine
字符串返回
我的想法如下:
var identify = SendCommand($"IDENTIFY").ToString();
txt_identify.Text += $"{Environment.NewLine}";
txt_identify.Text += ($"--Card Identification--{Environment.NewLine}{identify}{Environment.NewLine}");
使用send命令识别
,例如在文本框中返回这些字符串
:
--卡标识--
MIFARE UltralightATQA:4400UID:0466F5BADA5180SAK:00
--卡标识--
MIFARE Classic 1kATQA:0400UID:FDE99349SAK:08
结果应该更具可读性:
--卡标识--
MIFARE超轻
ATQA:4400
UID:0466F5BADA5180
萨克:00
--卡标识--
MIFARE Classic 1k
ATQA:0400
UID:FDE99349
萨克:08
但我不知道该怎么做。找不到使用split或regex的方法。
也许你们中的某个人有一个想法?假设ATQA:
,UID:
和SAK:
是您每次获得的值,您可以使用replace:
var identify = SendCommand($"IDENTIFY").ToString();
txt_identify.Text += "\r\n--Card Identification--\r\n" + identify
.Replace("ATQA:", "\r\nATQA:\t")
.Replace("UID:", "\r\nUID:\t")
.Replace("SAK:", "\r\nSAK:\t");
使用格式化返回数据字符串的方法:
static string FormatIdentitfyOutput(string v)
{
// keywords to be put on new line
var words = new[] { "ATQA:", "UID:", "SAK:" };
foreach (var w in words)
v = v.Replace(w, Environment.NewLine + w);
return $"--Card Identification--{Environment.NewLine}{Environment.NewLine}{v}";
}
测试:
输出:
--Card Identification--
MIFARE Ultralight
ATQA: 4400
UID: 0466F5BADA5180
SAK: 00
与@ZoharPeled的想法相同-他更快问题是,是否有一个文本框不显示的不可见分隔符。识别它并将其替换为“\r\n”
。谢谢您的帮助。需要添加\r\n类似Alessio Cantarella的评论,很高兴提供帮助:-)已将\n
更改为\r\n
。
--Card Identification--
MIFARE Ultralight
ATQA: 4400
UID: 0466F5BADA5180
SAK: 00