如何在特定字符之前删除字符串中的所有字符

时间:2014-11-28 06:42:35

标签: c# string substring trim

假设我有一个字符串A,例如:

string A = "Hello_World";

我想删除_之前的所有字符(包括)。 _之前的确切字符数可能会有所不同。在上面的示例中,删除后A == "World"

7 个答案:

答案 0 :(得分:13)

string A = "Hello_World";
string str = A.Substring(A.IndexOf('_') + 1);

答案 1 :(得分:1)

string a = "Hello_World";
a = a.Substring(a.IndexOf("_")+1);
试试这个?或者A =你的A = Hello_World中的A =部分?

答案 2 :(得分:1)

你试试这个:

 string input = "Hello_World"
    string output = input.Substring(input.IndexOf('_') + 1);
    output = World

您可以使用IndexOf方法和Substring方法。

像这样创建你的功能

public string RemoveCharactersBeforeUnderscore(string s)
{
 string splitted=s.Split('_');
 return splitted[splitted.Length-1]
}

像这样使用此功能

string output = RemoveCharactersBeforeUnderscore("Hello_World")
 output = World

答案 3 :(得分:1)

您已收到a perfectly fine answer。如果您愿意更进一步,可以使用强大而灵活的扩展方法包装a.SubString(a.IndexOf('_') + 1)

public static string TrimStartUpToAndIncluding(this string str, char ch)
{
    if (str == null) throw new ArgumentNullException("str");
    int pos = str.IndexOf(ch);
    if (pos >= 0)
    {
        return str.Substring(pos + 1);
    }
    else // the given character does not occur in the string
    {
        return str; // there is nothing to trim; alternatively, return `string.Empty`
    }
}

你可以这样使用:

"Hello_World".TrimStartUpToAndIncluding('_') == "World"

答案 4 :(得分:0)

var foo = str.Substring(str.IndexOf('_') + 1);

答案 5 :(得分:0)

string orgStr = "Hello_World";
string newStr = orgStr.Substring(orgStr.IndexOf('_') + 1);

答案 6 :(得分:0)

您可以通过创建子字符串来做到这一点。

简单示例在这里:

public static String removeTillWord(String input, String word) {
    return input.substring(input.indexOf(word));
}

removeTillWord("I need this words removed taken please", "taken");