Как удалить все символы из строки до определенного символа

Предположим у меня есть строка A, например:

string A = "Hello_World";

Я хочу удалить все символы до (и в том числе)_. Точное количество символов перед _ могут различаться. В приведенном выше примере A == "World" после удаления.

6 ответов


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

string a = "Hello_World";
a = a.Substring(a.IndexOf("_")+1);

попробовать? или A= часть в вашем A=Hello_World включена?


вы попробуете это:

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

вы можете использовать метод IndexOf и метод подстроки.

создайте свою функцию следующим образом

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

используйте эту функцию следующим образом

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

вы уже получили отличный ответ!--5-->. Если вы готовы пойти на один шаг дальше, вы можете завернуть 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"

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

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