处理文本框中的特殊字符并使用分隔符

handling special characters in textboxes and using splitters

使用字符串、特殊字符和分隔符时什么是好的选择?

例如

string name = "test, test";
string result = name + @"test, test";
List<string> list = new List<string>();

假设我希望将此字符串拆分并放入每个项目的列表中。 在这种情况下 'name is an item' 和 'test, test' 是一个项目

所以我可以做这样的事情:

String.split(list.ToArray(), ',');

我将使用逗号作为分隔符,但两项都已包含逗号。

结果应该是:

0 test, test
1 test, test

但由于它在逗号处拆分,结果将是

0 test
1 test
2 test
3 test

为了防止这种情况,我可以做类似的事情

if(name.Contains(","))
{
    name = name.Replace(",","comma");
}

然后转换回来。 但我不喜欢这段代码,它有点像意大利面条。 instea 我能做的是制作一个 class translationadapter 和 2 种方法转换器和 deconverter

但是你如何检查这些特殊字符或者在这种情况下你有什么建议。 因为我遇到过这样的情况,但有多个特殊字符,如 , 和 #。但我不想限制文本框。

三种方法。

使用不同的分隔符

连接或拆分字符串时不强制使用 , 定界符。这就是为什么一些 csv 文件使用 ; 字符:以避免逗号问题。

String.Replace() 就像你已经做的那样

在各个字符串中替换您想要保留的所有字符。

使用正则表达式拆分

如果您知道您的字符串具有与 \d\stest,\stest 相同的模式,那么您可以使用 Regex.Split 函数,该函数使用正则表达式来拆分字符串。