微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在C#中最后一次出现逗号时拆分字符串

如何解决在C#中最后一次出现逗号时拆分字符串

我说的是一个字符串

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));

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。