新手请教一个字符处理的问题

MikuKnight 2017-11-07 10:12:06
1.集团有限公司/生产院/地铁院/土建处
2.集团有限公司/项目部/成都铁路项目部

目前读取出来的数据主要有这两种

想获得这样的数据
1->生产院/地铁院
2->项目部/成都铁路项目部

因为是列表展示的,所以想问下在c#中怎么删除指定的/前的数据,第一个/前的字符和第三个/(如果有的话)删除
...全文
146 8 点赞 打赏 收藏 举报
写回复
8 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
peng2739956 2017-11-07
'/' 取 1和3不就完了吗 健壮性起见,需判断 分割之后的数组长度
  • 打赏
  • 举报
回复
k. 2017-11-07
获得第一个/的下标,然后从这个下标substring到最后 "".Substring("".IndexOf('/'))
  • 打赏
  • 举报
回复
string a = "集团有限公司/生产院/地铁院/土建处"; int i = a.IndexOf("/",1); int j = a.IndexOf("/", 3)>0 ? a.IndexOf("/", 2) : a.Length; string str = a.Substring(i, j - i);
  • 打赏
  • 举报
回复
秋的红果实 2017-11-07
可以用正则表达式
  • 打赏
  • 举报
回复
混QWER 2017-11-07
引用 2 楼 slyzly 的回复:
string str="集团有限公司/生产院/地铁院/土建处"; string[] myArray=str.Split('/'); string result=myArray[1]+"/"+myArray[2];
这个简单明了没问题
  • 打赏
  • 举报
回复
事理 2017-11-07
string str="集团有限公司/生产院/地铁院/土建处"; string[] myArray=str.Split('/'); string result=myArray[1]+"/"+myArray[2];
  • 打赏
  • 举报
回复
先用indexof ("/",1) 第一次出现 indexof("/",3) 第三次出现 然后用substring截取就可以了
  • 打赏
  • 举报
回复
用str.IndexOf("/",3)是得不到第三个"/"的位置的。 以下采用正则表达式去匹配,应该可以解决问题的 private string GetSubString(string originalStr) { string subStr = null; MatchCollection ms = Regex.Matches(originalStr, "/"); if (ms.Count == 0) { //添加代码。没有"/",该怎么处理就怎么处理吧 } else if (ms.Count == 1) { //添加代码。只有一个"/",该怎么处理就怎么处理吧 } else if (ms.Count == 2) //存在两个“/”,截取第一个后面的 { int firstPos = ms[0].Index; subStr = originalStr.Substring(firstPos + 1); } else //存在三个或更多“/”,截取第一个后面的到第三个之前的 { int firstPos = ms[0].Index; int thirdPos = ms[2].Index; subStr = originalStr.Substring(firstPos + 1, thirdPos - firstPos - 1); } return subStr; }
  • 打赏
  • 举报
回复
相关推荐
发帖
C#
加入

10.6w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2017-11-07 10:12
社区公告

让您成为最强悍的C#开发者