2017-02-19 5 views
1

私はC#で新しく、文字列配列にデータを分割しようとしています(/区切り文字を使用)。データのように来る:残りのデータから '/'デリメータを使用してURLを分割します

1 /ロンドン/ https://media.timeout.com/images/100644443/image.jpg

私が持っているしたいと思います:1London別途https://media.timeout.com/images/100644443/image.jpg

が、私はこれを行うとき:

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

をURLも明らか部分に分割されます。区切り文字を変更するだけでなく、これに対する回避策はありますか?

+1

https://msdn.microsoft.com/en-us/library/c1bs0eda(v=vs.110).aspx「カウント= 3」の何が問題なのですか? * count 種類:System.Int32 返すサブ文字列の最大数。* –

答えて

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

使用IndexOf方法を行うための別の方法を知りませんhttpsのインデックス:

var index = someString.IndexOf("https") 

次に、文字列f

var urlPart = someString.Substring(index); 
+0

ありがとうございました。私が探していたものです。ニースとシンプル。 :) – Thomas

0

IndexOf「/」の最初と2番目の出現箇所を見つけることができます。 (エディタで検証されていない)、このような

何か:

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

これはかなりありませんが、私は取得するには、この

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

フラグを無視する - これを削除しようとしましたが、電話ではできません –

+1

私は以下を変更した後でも動作します: partB = obj.Replace(partA.toString()、string.Empty);あなたの答えをありがとう。 – Thomas

1

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

httpsのインデックスの後になります

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

とURL:ROMがhttpsのインデックスまで始まります

String.Split Method (Char[], Int32)

...


タイプ:可能System.Int32
ストリングの最大数を返すように。このインスタンス内の部分文字列を数えるよりも多くがある場合

...

、最初のカウントマイナス1つのサブストリングは、最初のカウントで返されマイナスこの例では1つの戻り値の要素、および残りの文字があります戻り値の最後の要素で返されます。

+0

私はすでに答えを受け入れているので、私はこれについて非常に大きな感謝を言うことができます。ベストと最短の方法! – Thomas

関連する問題