处理文本框中的特殊字符并使用分隔符
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 函数,该函数使用正则表达式来拆分字符串。
使用字符串、特殊字符和分隔符时什么是好的选择?
例如
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 函数,该函数使用正则表达式来拆分字符串。