繁体   English   中英

C#string.split差异

[英]C# string.split variances

我可能错过了一些非常基本的东西,但这让我很难过。

当使用String.Split()时,我得到不同的结果

.Split(' ') 

.Split(new char[' '])

鉴于此代码:

using (System.IO.StreamWriter sw = new StreamWriter(@"C:\consoleapp1.log", true))
{
    string anystring = "pagelength=60 pagewidth=170 cpi=16 lpi=8 landscape=1 lm=2";
    sw.WriteLine(".Split(' ')");
    string[] anystrings1 = anystring.Split(' ');
    for (int i = 0; i < anystrings1.Length; i++)
    {
        sw.WriteLine($@"{i,2}: {anystrings1[i]}");
    }
    sw.WriteLine(".Split(new char[' '])");
    string[] anystrings2 = anystring.Split(new char[' ']);
    for (int i = 0; i < anystrings2.Length; i++)
    {
        sw.WriteLine($@"{i,2}: {anystrings2[i]}");
    }

}

为什么我会得到不同的结果:

.Split(' ')
 0: pagelength=60
 1: pagewidth=170
 2: cpi=16
 3: lpi=8
 4: landscape=1
 5: lm=2
.Split(new char[' '])
 0: pagelength=60 pagewidth=170 cpi=16 lpi=8 landscape=1 lm=2
new char[' ']

不会做你认为它做的事情。

空格是ASCII字符32 (C#允许在charint之间进行隐式转换)。 这样代码就会创建一个大小为32的char 数组

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM