问题描述
我说的是一个字符串
var str = "xy,yz,zx,ab,bc,cd";
我想在C#中最后一个出现逗号的地方将其拆分,即
a = "xy,ab"
b = "bc,cd"
如何获得此结果?
解决方法
让我们借助index
找到所需的逗号LastIndexOf
:
var str = "xy,yz,zx,ab,bc,cd";
// index of the 2nd last occurrence of ','
int index = str.LastIndexOf(',',str.LastIndexOf(',') - 1);
然后使用Substring
:
string a = str.Substring(0,index);
string b = str.Substring(index + 1);
让我们看看:
Console.WriteLine(a);
Comsole.WriteLine(b);
结果:
xy,ab
bc,cd
,
“可读”的替代方法;)
<MyImportedComponent disabled={this.state.invalid} />
,
您可以通过正则表达式替换来解决此问题:
var str = "xy,cd";
var a = Regex.Replace(str,@",[^,]+,]+$","");
var b = Regex.Replace(str,@"^.*,([^,]+)$","$1");
Console.WriteLine(a);
Console.WriteLine(b);
此打印:
xy,ab
bc,cd
,
如果您从NuGet获得Microsoft的System.Interactive扩展,则可以执行以下操作:
string output = String.Join(",",str.Split(',').TakeLast(2));