将字符串中的“_”替换为“-”
本文关键字:替换 字符串 | 更新日期: 2023-09-27 18:21:20
在特定情况下,我必须将邮件id中的_
替换为-
,尝试使用Index方法,但没有获得正确的标识。
以下是实际情况。
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-