如何将一个字符串在最后一个下划线字符处分成两个部分

16

给定一个包含下划线字符的字符串,如何将其分割成围绕最后一个下划线字符的两个子字符串?

例如. "a_b_c" => ["a_b", "_c"]

4个回答

35
你可以在String上使用lastIndexOf,它将返回最后一次出现一串字符的索引位置。

你可以在String上使用lastIndexOf,它将返回最后一次出现一串字符的索引位置。

String thing = "132131_12313_1321_312";
int index = thing.lastIndexOf("_");
String yourCuttedString = thing.substring(0, index);

如果在字符串中没有找到该项,则返回-1


17

你可以使用String#lastIndexOf(String str)方法, 试试看:

int lastIndexOf = str.lastIndexOf("_");
String substring1 = str.substring(0, lastIndexOf);
String substring2 = str.substring(lastIndexOf+1, str.length());

6
str.substring(lastIndexOf+1, str.length()) 可以直接写作 str.substring(lastIndexOf+1) - lpratlong

8

试一下这个

    String[] a = s.split("_(?!.*_)");

1
你可以使用 String 的 lastIndexOf 方法,该方法返回一个整数,然后可以将其传递给 subString 方法。
String code = "123_456_789";
String subString = code.subString(code.lastIndexOf("_"));

1
没有接受int参数的split方法。 - user432
你说得对,我的错,我是指subString,我会更新以反映这一点。 - Mark Taylor

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