从已知索引之前找到子字符串的索引

时间:2018-10-01 07:28:03

标签: string groovy

我很难考虑描述性标题,为此感到抱歉。

我在这里面临一个问题。我有很多必须处理的代码文件。而且我必须找到一些索引才能获得子字符串。 这是一个示例:

public BigInteger getGenbestillingerTilbageKvantitet() {
        return genbestillingerTilbageKvantitet;
    }

我必须能够找到上述示例的起始索引(我将整个代码文件加载为字符串,因此显示的方法将是整个代码文件的子字符串)。我能够获取getGenbestillingerTilbageKvantitet()的索引,因为我在数组(以及其他数组)中有“ GenbestillingerTilbageKvantitet”:

int index7 = fileContent.indexOf("get" + capitalizedProps[i])

这就是我的方法。

然后我会找到方法的结尾,如下所示:

int index4 = fileContent.indexOf("}", index3) + 1

问题是我需要“ public”的索引。但是由于类型不一定是“ BigInteger”,因此给我带来了麻烦。

有人知道如何从公众那里获得索引吗?如果该类型是自定义类型,则可以:

String s = "public " + capitalizedProps[i] + "Type get" + capitalizedProps[i]
int index3 = fileContent.indexOf(s)

有时会起作用:)但当类型是BigInteger甚至是String时就不会。

1 个答案:

答案 0 :(得分:1)

如果要获取public方法名前面的getGenbestillingerTilbageKvantitet关键字的索引,则可以使用从头到{{1}的索引创建的子字符串的String.lastIndexOf(str) }方法名称。像这样:

getGenbestillingerTilbageKvantitet

其中int pubKeyIdx = fileContent.substring(0, index7).lastIndexOf("public") 变量保存方法名称的索引。