使用' /'从其他数据中拆分网址分隔符

时间:2017-02-19 01:09:22

标签: c# string split

我对C#很陌生,我正在尝试使用/分隔符将一些数据拆分成字符串数组。数据如下:

  

1 /伦敦/ https://media.timeout.com/images/100644443/image.jpg

我希望:1London以及https://media.timeout.com/images/100644443/image.jpg分开。

但是当我这样做时:

var x = obj.Split('/'); 

网址也明显分成了几个部分。除了更改分隔符之外,还有解决方法吗?

4 个答案:

答案 0 :(得分:4)

var someString = "1/London/https://media.timeout.com/images/100644443/image.jpg";

使用IndexOf方法获取https的索引:

var index = someString.IndexOf("https")

然后,您可以将字符串从开头拆分为索引https

var splitParts = someString.Substring(0, index - 1).Split('/');

并且网址将在https

的索引之后
var urlPart = someString.Substring(index);

答案 1 :(得分:1)

obj.Split(new[] {'/'}, 3)

  

String.Split Method (Char[], Int32)

     

...

     

计数
  类型:System.Int32
  要返回的最大子串数。

     

...

     

如果此实例中有多个count子串,则第一个计数减1个子字符串将在第一个计数中返回返回值的1个元素,并且此实例中的其余字符将在返回的最后一个元素中返回值。

答案 2 :(得分:0)

你可以IndexOf找到'/'的第一个然后第二个出现。

这样的事情(未在编辑中验证):

s1 = obj.Substring(0, obj.IndexOf("/"));
s2 = s1.Substring(0, s1.IndexOf("/"));
s3 = s2.Substring(0, s2.IndexOf("/"));

String[] output = new String[] { s1, s2, s3 };

这不是很好,但我不知道另一种方法来做到这一点

答案 3 :(得分:0)

var arr = obj.Split('/');
StringBuilder partA = new StringBuilder();
string partB = string.Empty;
foreach (var item in arr) {
 if (item.ToLower().StartsWith("http")) {
  partB = obj.Replace(partA.ToString(),string.Empty);
  break;
 }
 partA.Append(item);
 partA.Append("/");
}

或者

  var partA = obj.Split('/',2);
  var partB = obj.Replace(partA.ToString(),string.Empty);