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

10

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

string A = "Hello_World";

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

6个回答

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

2

您已经收到了一个非常好的答案。如果您愿意再进一步,您可以将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"

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

你可以尝试这个吗?或者你的A=Hello_World中包含了A=部分吗?


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

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

-1

你可以通过创建子字符串来实现这一点。

这里有一个简单的示例:

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接