制表符分隔C#中的字符串拆分

时间:2013-08-08 03:21:53

标签: c#

发布了几个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' />

非常感谢任何帮助。

5 个答案:

答案 0 :(得分:6)

尝试在配置文件中用&#09;替换\ t。在XML文件中,制表符由&#09;表示。

答案 1 :(得分:4)

<add key="delimiter" value="&#x9;"/>

你可以这样做

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,它不是因为转义字符。