2012-04-30 15 views
13

Bir dizeyi ilk boşlukta bölmeye çalışıyorum ve yalnızca 2. yarısını koruyorum. Yani eğer girdi "1. çelikten" ise, çıktı "çelikten" olurdu. Buradan birkaç farklı örnekle çalışıyorum ve işe yaramayacağım. Düşünceler? Teşekkürler.İlk boşlukta bölünmüş dize

+3

'string secondHalf = myString.Split (yeni karakter [] {''}, 2) [1];' Dizide maksimum boyutta Bölme yöntemini kullanın. – BenVlodgi

cevap

27
var myString = "1. top of steel"; 
var newString = myString.Remove(0, myString.IndexOf(' ') + 1); 
1

sadece yapabileceği:

string myString = "1. top of steel"; //replace this with the input 
string resultString = myString.IndexOf(' ') > -1 
    ? myString.Substring(myString.IndexOf(' ') + 1) 
    : myString; 
+0

splitString'inizin bir dizi olması gerekir ve bu bile olsa, 'myNewString' 'top 'olmasının sonucunu verir çünkü her alanın ilkinde değil, her bölüme ayrılır. – jzworkman

+0

Split sonucunu saklamak için bir diziye ihtiyacınız var. Ayrıca, giriş birden fazla boşluk içerdiğinde bu düzgün çalışmayacak – Attila

+1

Bu kod çalışmayacak, çok fazla hata var. 1) splitString bir dizi olması gerekiyor. 2) Bölünmüş fonksiyonun parametre olarak bir diziye ihtiyacı vardır. 3) İlk 2 puan bile göz ardı edilirse, sadece dizinin kalanını değil, sadece 1. endekste döndürecektir. –

3

Sadece aşağıdaki gibi kullanın Bu kolayca Substring kullanılarak gerçekleştirilir

string[] stringTokens = originalString.Split(new char[] {' '}, 2, StringSplitOptions.RemoveEmptyEntries); 
if(stringTokens.Length >= 2) 
    newString = stringTokens[1]; 
15

:

string myString = "1. top of steel"; 
string newString = myString.Substring(myString.IndexOf(' ') + 1); 

Bu verecektir yeni bir s ilk boşluktan sonra başlıyor.