2010-06-02 28 views
32

Karakter "." Karakterinden önce yerleştirilen tüm karakterleri ne kadar etkili bir şekilde kaldırın?Karakteri "." Karakterinden önce kaldırın.

Girdi: Amerika.USA

Çıktı: ABD

+2

hep var sadece gidiş: Bu seferki yerine eksen son rastlanılan sonra dizeyi kesen

public static string truncateStringAfterChar(string input, char pivot){ int index = input.IndexOf(pivot); if(index >= 0) { return input.Substring(index + 1); } return input; } 

:

Bu seferki eksen ilk geçtiği sonra dizeyi kesen bir dönem olsun –

+0

@James Black: yes – loviji

cevap

85

Sen IndexOf method ve şöyle Substring method kullanabilirsiniz:

string output = input.Substring(input.IndexOf('.') + 1); 

Yukarıdaki hata işleme özelliği yoktur, bu nedenle giriş dizesinde bir süre yoksa, sorunlara neden olur.

+6

@casperOne Gerçekte IndexOf dönmüyorsa -1 bulunamıyor ve dizgiler alt dizginin referansı için sıfır temellidir, bu nedenle teknik bir süre boyunca tüm dizgiyi geri döndürürdü, doğru mu? Dize boş değil sürece bu yeterli olduğunu düşünüyorum. – jcolebrand

+0

@drachenstern: IndexOf, bulunamadıysa -1 değerini döndürür ve bu, Substring öğesine aktarılırsa, bir ArgumentOutOfRangeException öğesi atar. – casperOne

+0

@casperOne ~ tut tut, -1 '+ 1 '... yani sıfır ya da daha fazla olacak, her zaman. Kodunuz benim değil;) – jcolebrand

4
String input = ....; 
int index = input.IndexOf('.'); 
if(index >= 0) 
{ 
    return input.SubString(index + 1); 
} 
10
string input = "America.USA" 
string output = input.Substring(input.IndexOf('.') + 1); 
3
public string RemoveCharactersBeforeDot(string s) 
{ 
string splitted=s.Split('.'); 
return splitted[splitted.Length-1] 
} 
+0

Yan nota: Bu, yalnızca sonuncuya ihtiyacınız varsa, hepsine ihtiyacınız varsa ancak gerek duyulmazsa, istenen dizgenin her iki parçasını (ya da tümünün) tutmasını sağlar. – Joey

20

Bu deneyebilirsiniz:

string input = "lala.bla"; 
output = input.Split('.').Last(); 
+3

Birden fazla 1 dönem varsa sorun yaşarsınız. –

+0

@MikeCole Neden? .Last() bir süre sonra son kelimeyi aldığınızdan emin olur –

2

karakter var yapmazsa, orijinal dize döndürür, yöntemlerin bir çift.

public static string truncateStringAfterLastChar(string input, char pivot){   
    return input.Split(pivot).Last(); 
}