我刚刚遇到了一个令我困惑的 C# 问题。用“;”分割字符串当发现等号返回完全错误的标记数组时停止。
`string pwd = "some;string;I_do=want;to;split";
string[] parts = pwd.split(';');`
parts[2]
包含“I_do”而不是“I_do=want”。
我发现这个问题自 2012 年以来就已发布,但似乎在 2023 年仍然会发生。 除非有一些晦涩难懂的解释,否则我相信这只是我尽可能避免使用 MS 技术的原因之一。
如果您运行此代码:
using System;
public class HelloWorld
{
public static void Main(string[] args)
{
string pwd = "some;string;I_do=want;to;split";
string[] parts = pwd.Split(';');
Console.WriteLine (String.Join("___", parts));
}
}
答案是:
some___string___I_do=want___to___split
所以它有效。