public void Test(String userWithDomain)
{
// assume userWithDomain could be a console input or an ajax call.
// 1: userWithDomain = "domain\\user";
// 2: userWithDomain = "domain\user";
// 3: userWithDomain = "domain\test";
// (1) would work;
// (2) would work too [this kind of input is not valid from within a C# app]
// (3) wouldn't work because \t would a valid escape sequence and output would be "domin" "est"
String[] split = userWithDomain.Split(new String[] { "\\" }, StringSplitOptions.RemoveEmptyEntries);
foreach (String item in split)
{
Console.WriteLine(item);
}
// How do I fix (3)?
}
Run Code Online (Sandbox Code Playgroud)
编辑:
该代码适用于所有情况,但如果从JavaScript("domain\testuser")等javascript调用此方法,则会失败;
我的猜测是,你的测试数据被搞砸了,而不是代码.
例如,如果您正在做:
string userWithDomain = "domain\test";
Run Code Online (Sandbox Code Playgroud)
那不是你从AJAX,控制台输入等实际获得的 - 因为你实际上有"域",然后是一个标签,然后是"est".
要在C#源代码中表示文本"domain\test",最简单的方法是使用逐字字符串文字:
string userWithDomain = @"domain\test";
Run Code Online (Sandbox Code Playgroud)
在你的测试用例中使用它,我怀疑你会发现它工作正常.(就个人而言,我会使用userWithDomain.Split('\\', StringSplitOptions.RemoveEmptyEntries),但这确实是一个不同的问题.)
| 归档时间: |
|
| 查看次数: |
3065 次 |
| 最近记录: |