发布了几个stackoverflow问题,但它们都不适用于我。
我有一个字符串说
string str = "15.24\t7.28\t6.04\t5.0";
在App.Config中,我定义了一个键值
<add key="delimiter" value="\t"/>
在程序中,我有类似的东西
string delimiter = ConfigurationManager.AppSettings["delimiter"];
string[] parsedValues = str.Split(delimiter.ToCharArray());
调试时我发现分隔符更改为“\ t”,因此它不会拆分字符串。
我尝试将App.Config更改为
<add key="delimiter" value=@"\t"/>
但这会产生错误。
即使以下情况也会出错。
<add key="delimiter" value='\t' />
非常感谢任何帮助。
答案 0 :(得分:6)
尝试在配置文件中用	
替换\ t。在XML文件中,制表符由	
表示。
答案 1 :(得分:4)
带
<add key="delimiter" value="	"/>
你可以这样做
string delimiter = ConfigurationManager.AppSettings["delimiter"];
string[] stringSeparators = new string[] {delimiter };
var result =str.Split(stringSeparators,StringSplitOptions.RemoveEmptyEntries);
结果:
15.24
7.28
6.04
5.0
答案 2 :(得分:1)
string[] parsedValues = str.Split(delimiter);
这就是你想要的。您不希望将分隔符更改为字符数组。 希望这有帮助。
答案 3 :(得分:0)
我刚才有这个问题,我最终使用Regex.Unescape
来解决问题
示例:
string delimiter = Regex.Unescape(ConfigurationManager.AppSettings["delimiter"]);
string[] parsedValues = str.Split(delimiter.ToCharArray());
答案 4 :(得分:0)
string[] parsedValues = str.Split(new[] { delimiter }, StringSplitOptions.None);
此代码将获得您想要的内容。如果你将delimiter.ToCharArray()传递给string.Split方法,它将使用'\'和't'来分割你的str,它不是因为转义字符。