leo*_*ora 63 .net c# arrays trim
我有一个字符串,如:
string email = "a@a.com, b@b.com, c@c.com";
Run Code Online (Sandbox Code Playgroud)
我想把它拆分成一个字符串数组
如果我这样做:
string[] emails = email.Split(',');
Run Code Online (Sandbox Code Playgroud)
我在每个电子邮件地址前面都有空格(在第一个电子邮件地址之后):
emails[0] = "a@a.com"
emails[1] = " b@b.com"
emails[2] = " c@c.com"
Run Code Online (Sandbox Code Playgroud)
获得这个的最佳方法是什么(更好的解析方法或修剪数组中所有字符串的方法)?
emails[0] = "a@a.com"
emails[1] = "b@b.com"
emails[2] = "c@c.com"
Run Code Online (Sandbox Code Playgroud)
Bry*_*tts 219
emails.Split(',').Select(email => email.Trim()).ToArray()
Run Code Online (Sandbox Code Playgroud)
nic*_*083 39
您也可以替换所有出现的空格,因此避免使用foreach循环:
string email = "a@a.com, b@b.com, c@c.com";
string[] emails = email.Replace(" ", "").Split(',');
Run Code Online (Sandbox Code Playgroud)
Sam*_*ell 20
以下任一项都可以使用.我推荐第一个,因为它更准确地表达了连接字符串.
string[] emails = email.Split(new string[] { ", " }, StringSplitOptions.None);
string[] emails = email.Split(new char[] { ' ', ',' }, StringSplitOptions.RemoveEmptyEntries);
Run Code Online (Sandbox Code Playgroud)
ska*_*alb 10
你可以使用Trim():
string email = "a@a.com, b@b.com, c@c.com";
string[] emails = email.Split(',');
emails = (from e in emails
select e.Trim()).ToArray();
Run Code Online (Sandbox Code Playgroud)
使用Regex.Split以避免修剪
var emails = Regex.Split(email, @",\s*");
Run Code Online (Sandbox Code Playgroud)
.NET 5 已经到来,随之而来的是解决此问题的现代解决方案:
string[] emails = email.Split(',', StringSplitOptions.TrimEntries);
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以使用这样的单行解决方案:
string[] emails = text.Split(',', StringSplitOptions.RemoveEmptyEntries);
Array.ForEach<string>(emails, x => emails[Array.IndexOf<string>(emails, x)] = x.Trim());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
57984 次 |
| 最近记录: |