2010-06-02 59 views
32

如何有效地刪除字符串「。」前的所有字符?刪除字符前的字符「。」

輸入: Amerika.USA

輸出: 美國

+2

有沒有永遠只打算是一個時期? – 2010-06-02 15:54:05

+0

@James Black:是 – loviji 2010-06-02 15:55:09

回答

85

您可以使用IndexOf methodSubstring method像這樣:

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

上面沒有錯誤處理,所以如果輸入字符串中不存在句點,則會出現問題。

+6

@casperOne實際上,如果沒有找到,實際上IndexOf不返回-1,並且字符串用於引用子字符串,所以在技術上如果沒有句點它會返回整個字符串,對嗎?我認爲只要字符串不爲空就足夠了。 – jcolebrand 2010-06-02 16:00:34

+0

@drachenstern:如果未找到,IndexOf將返回-1,如果傳遞給Substring,則將引發ArgumentOutOfRangeException。 – casperOne 2010-06-02 16:25:48

+0

@casperOne〜tut tut,它的-1'+ 1' ...所以它會一直是零或更多。你的代碼不是我的;) – jcolebrand 2010-06-02 16:31:43

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

注意:這將導致保留虛線的兩個(或全部)部分,如果您需要所有這些部分,那麼這些部分是可取的,但如果您只需要最後一部分則不需要。 – Joey 2010-06-02 15:57:01

20

你可以試試這個:

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

如果有多個期間,您將遇到問題。 – 2013-02-27 16:44:53

+0

@MikeCole爲什麼? .Last()將確保您在一段時間後得到最後一個單詞 – 2015-11-30 03:51:22

2

兩個方法,如果字符不存在,返回原始的字符串。

這一個切串樞軸的第一次出現之後:

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

這一個,而不是削減樞軸的最後出現之後的字符串:

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