如何在第n次出现分隔符之前进行子串?

mem*_*und 5 java string split

first;snd;3rd;4th;5th;6th;...
Run Code Online (Sandbox Code Playgroud)

如何在;分隔符第三次出现后拆分上面的内容?特别是不需要value.split(";")将整个字符串作为数组,因为我不需要将值分开.只是字符串的第一部分直到第n次出现.

期望的输出将是: first;snd;3rd.我只需将其作为字符串子字符串,而不是拆分分隔值.

Akc*_*tor 3

使用Apache 中的StringUtils.ordinalIndexOf()

查找字符串中的第 n 个索引,处理 null。此方法使用 String.indexOf(String)。

参数:

str - 要检查的字符串,可以为 null

searchStr - 要查找的字符串,可以为 null

ordinal - 要查找的第 n 个 searchStr

返回:搜索字符串的第 n 个索引,如果没有匹配或输入空字符串,则返回 -1 (INDEX_NOT_FOUND)

或者这样,不需要库

public static int ordinalIndexOf(String str, String substr, int n) {
    int pos = str.indexOf(substr);
    while (--n > 0 && pos != -1)
        pos = str.indexOf(substr, pos + 1);
    return pos;
}
Run Code Online (Sandbox Code Playgroud)