C#:拆分字符串而不返回空字符串
我有一个字符串:C#:拆分字符串而不返回空字符串,c#,split,C#,Split,我有一个字符串: a = "1;2;3;" 我想以这种方式拆分它: foreach (string b in a.split(';')) 如何确保只返回1、2、3,而不是“空字符串” 如果我拆分1;2.3然后我会得到我想要的。但是如果我拆分1;2.3;然后我得到一个额外的“空字符串”。我采纳了一些建议并做到了这一点: string[] batchstring = batch_idTextBox.Text.Split(';', StringSplitOptions.RemoveEmptyEnt
a = "1;2;3;"
我想以这种方式拆分它:
foreach (string b in a.split(';'))
如何确保只返回1
、2
、3
,而不是“空字符串”
如果我拆分1;2.3
然后我会得到我想要的。但是如果我拆分1;2.3;代码>然后我得到一个额外的“空字符串”。我采纳了一些建议并做到了这一点:
string[] batchstring = batch_idTextBox.Text.Split(';', StringSplitOptions.RemoveEmptyEntries);
但是,我遇到了以下错误:
错误1“string.Split(params)”的最佳重载方法匹配
char[])有一些无效的参数C:\Documents和
设置\agordon\My Documents\Visual Studio
2008\Projects\lomdb\EnterData\DataEntry\DAL.cs 18 36 EnterData
错误2参数“2”:无法从“System.StringSplitOptions”转换
到“char”C:\Documents and Settings\agordon\My Documents\Visual Studio
2008\Projects\lomdb\EnterData\DataEntry\DAL.cs 18 68 EnterData
将StringSplitOptions.RemoveEmptyEntries
传递给Split方法
编辑
Split方法没有可由单个字符拆分的重载。您需要指定一个字符数组
foo.Split(new char[] {';'}, StringSplitOptions.RemoveEmptyEntries);
使用
试一试:
string test = "1;2;3;";
test = String.Join(",", test.TrimEnd((char)59).Split((char)59));
string test = "1;2;3;";
test = String.Join(",", test.TrimEnd(';').Split(';'));
不知道拆分选项。如果你没有,你可以
a.Split(';').Where(s => s.Length > 0).ToArray();
使用
.Split
有4个重载,其中两个不支持StringSplitOptions
并使用params
格式(因此不需要创建拆分器数组),其中两个支持StringSplitOptions
,需要char
或stringstring数组。包含任何StringSplitOptions
时,Split采用数组:
string[] batchstring = batch_idTextBox.Text.Split(new [] { ';' }, StringSplitOptions.RemoveEmptyEntries);
如果不需要选项,语法将变得更简单:
string[] batchstring = batch_idTextBox.Text.Split(';');
上面的代码将根据第一个空格将行拆分为两个子字符串。
substr[0]将显示“您好!”
substr[1]将有“祝您有美好的一天”。在这里,拆分中的2是一个整数计数器,您可以根据需要传递任何值
string[] batchstring = batch_idTextBox.Text.Split(new [] { ';' }, StringSplitOptions.RemoveEmptyEntries);
string[] batchstring = batch_idTextBox.Text.Split(';');
string line="Hello! Have nice day."
string[] substr = line.Split(new[] {' '}, 2);