忽略拆分字符串的第一部分

Tur*_*tle 0 java string

如果我有一个类似的字符串:1234_my_string.txt有一个比提供的更好的方法来删掉1234_所以字符串的值将等于my_string.txt

为了清楚起见,我想丢弃所有内容,包括字符串中的第一个"_".该字符串不一定等于"1234_my_string.txt".第一个'_'之前的字符长度未知.

伪代码:

String str = "1234_my_string.txt";
do foo
str == my_string.txt
Run Code Online (Sandbox Code Playgroud)

这是我目前的一个工作示例,它检查str的值然后拆分并重新加入字符串以获得所需的结果.我想要删掉的字符大小是未知的.我不认为这是非常有效的:

        if(str != null && !str.equals("") )
        {
            String [] strParts = str.split("_");
            val = "";

            for (int i = 1; i < strParts.length; i++)
            {
                str += strParts[i];
                str += "_";
            }

            str = str.substring(0, str.length()-1);
        }
Run Code Online (Sandbox Code Playgroud)

Psh*_*emo 7

可能是最简单的解决方案

str = str.substring(str.indexOf('_') + 1);
Run Code Online (Sandbox Code Playgroud)

如果您确定您的字符串至少包含一个,_您还可以使用以下内容:

str = str.split("_", 2)[1];
//        splits max into two parts
//        [1] get second part (the one after "_")
Run Code Online (Sandbox Code Playgroud)

  • *如果您确定您的字符串将包含至少一个`_`*如果您不是,则第一个解决方案将引发异常. (2认同)