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

时间:2016-05-13 20:20:11

标签: 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

这是我目前的一个工作示例,它检查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);
        }

2 个答案:

答案 0 :(得分:7)

可能最简单的解决方案是

str = str.substring(str.indexOf('_') + 1);

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

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

答案 1 :(得分:4)

如果你只想摆脱包括第一个_在内的所有内容,一种简单的方法就是使用正则表达式并用""替换该部分。

e.g。

String str = "1234_my_string.txt";
str = str.replaceFirst("[^_]*_", "");
System.out.println(str);  // my_string.txt