C#如何编辑不同的字符串并在文本框中给出输出

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

我正在为我的NFC卡开发GUI

现在,我使用的设备中有一项功能,可以在读卡器模式下切换,识别卡类型,读取uid、ATQA、SAK,并将其作为
字符串返回

我的想法如下:

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