斯普利特和特定字符添加到C#字符串
我与关键措辞模块,其中每个字结束与,
并从字符串例如空间工作是如下:斯普利特和特定字符添加到C#字符串
如果字符串是
one man sitting with girl , baby girl , Smiling girl
那么结果应该是
,one man sitting with girl,baby girl,Smiling girl,
我想这
string[] strArray = str15.Split(new char[] { ',', ';' });
if (strArray.Length >= 1)
{
foreach (string str3 in strArray)
{
if (str3 != string.Empty)
{
strr1 = strr1 + str3 + ",";
}
}
}
但无法从字符串中删除空格。
你想要做的第一件事是tokenise字符串,使用Split()
。
string input = "some words , not split , in a sensible , way";
string[] sections = input.Split(',');
这给你用逗号和分割字符串数组,这将是这个样子:
"some words "
" not split "
" in a sensible "
" way"
现在要修剪那些空间了。 string
类有一个很好的小函数Trim()
,它从字符串的开头和结尾删除所有空白字符(空格,制表符等)。
for (int i = 0; i < sections.Length; i++)
sections[i] = sections[i].Trim();
现在你有一个字符串像这样的数组:
"some words"
"not split"
"in a sensible"
"way"
接下来,您想用逗号分隔符来加入他们重新走到一起。
string result = string.Join(",", sections);
这给你沿着此线的东西:
"some words,not split,in a sensible,way"
最后,你可以在开始添加逗号和结束:
result = "," + result + ",";
当然,这ISN这是最干净的做法。这只是描述各个步骤的简单方法。您可以结合这一点使用起来LINQ分机全部:
string result = "," + string.Join(",", input.Split(',').Select(s => s.Trim())) + ",";
这需要输入,将其分解的逗号分隔符,然后在列表中每个项目执行lambda表达式s => s.Trim()
,它选择的修剪版本每个元素的字符串。然后将得到的枚举传回string.Join()
,然后在开始和结束处添加两个逗号。它具有与上述步骤相同的功能,但它只有一行。
downvoter是否愿意解释他们的推理,以便我可以解决他们注意到的任何问题? – Polynomial 2014-09-26 09:56:23
您可以从我那里获得+1,因为这不仅仅是正确的,而是完全解释它。 – DavidG 2014-09-26 09:57:56
感谢您的精彩解释@Polynomial,我真的很感激你的回答:) – Gitz 2014-09-26 10:02:42
Split
您的字符串并且通过消除白色空间再加入它:
var input = "one man sitting with girl , baby girl , Smiling girl";
var output = string.Join(",", input.Split(',').Select(x => x.Trim()));
// If you wanna enclose it with commas
output = string.Format(",{0},",output);
这应该工作:
string test = "one man sitting with girl , baby girl , Smiling girl";
Regex regex = new Regex(@"\s+,\s+");
string result = regex.Replace(test, ",");
认真吗?正则表达式? – Polynomial 2014-09-26 09:43:13
@Polynomial有什么问题吗? – 2014-09-26 09:45:13
是的,我会这样做,因为如果需求变得更加困难,这样你就可以变得灵活...... Regex仍然是我的选择。 – Greenhorn 2014-09-26 09:54:02
试试这个:
var input = "one man sitting with girl , baby girl , Smiling girl";
var output = string.Join(",", input.Split(',').Select(x => x.Trim()));
output = string.Concat(",", output, ",");
斯普利特 - >剪裁 - >加入 – 2014-09-26 09:39:54
只是'斯普利特( '')'和'TRIM()'每一项,那么你可以'Join'这些 – 2014-09-26 09:40:17
线索10解答! – DavidG 2014-09-26 09:40:36