Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将字符串中的``替换为`-`_C# - Fatal编程技术网

C# 将字符串中的``替换为`-`

C# 将字符串中的``替换为`-`,c#,C#,在特定情况下,我必须将邮件id中的\uu替换为-,尝试使用索引方法,但没有获得正确的标识 下面是实际情况 Mail id : abc@bc_cd_fd@gmail.com ( It's wrong as per my requiremnt) 我想用下面的格式替换它 Required format :abc@bc-cd-fd@gmail.com 按以下格式尝试 string correctString = errString.Replace("_", "-"); 但我必须在@之后做这件事

在特定情况下,我必须将邮件id中的
\uu
替换为
-
,尝试使用索引方法,但没有获得正确的标识

下面是实际情况

Mail id : abc@bc_cd_fd@gmail.com ( It's wrong as per my requiremnt)
我想用下面的格式替换它

Required format :abc@bc-cd-fd@gmail.com
按以下格式尝试

 string correctString = errString.Replace("_", "-");
但我必须在@之后做这件事


提前感谢您的及时帮助。

如果要替换“@”符号后的文本,首先需要隔离字符串的该部分。您可以通过使用
Split
方法将字符串拆分为两部分来实现这一点,即“@”符号之前的部分和之后的部分,并仅在第二部分上运行replace:

public string FixEmail(String email) {
    var parts = email.Split('@');
    return parts[0] + "@" + parts[1].Replace("_", "-");
}

// ... snip ...

FixEmail("ab-c_d@12_34.com").Dump();
如果您的电子邮件中有多个“@”符号,您可以尝试仅在最后一部分运行替换,并将第一部分连接在一起:

public string FixEmail(String email) {
    var parts = email.Split('@');
    parts[parts.Length - 1] = parts[parts.Length - 1].Replace("_", "-");
    return String.Join("@", parts);
}

一些索引linq将使其快速且简单:

var result = string.Join("@", "aaa_a@_a_".Split('@').ToList().
                             Select((s, i) => i > 0 ? s.Replace('_', '-') : s).
                             ToArray());

//returns aaa_a@-a-

找到
@
后面的部分(使用
String.Split
IndexOf
)并执行同样的操作您可以拆分字符串。或者你可以使用正则表达式。在我这边试过,效果很好…@JackFrost这只是因为他的例子除了@符号后没有下划线。@ChrisFarmer-Oh。我懂了。我现在明白了。嗯,他找到了他的答案。它可能有比2更多的部分:我正在使用2.0,LinQ我在这里不能使用,但是谢谢你的回复,我也会尝试这个。