Найти индекс подстроки от ранее известного индекса - PullRequest
0 голосов
/ 01 октября 2018

Мне трудно думать о описательном названии, извините за это.

Я столкнулся с проблемой здесь.У меня есть много файлов кода, которыми я должен манипулировать.И я должен найти некоторые индексы, чтобы получить подстроку.Вот пример:

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 голосов
/ 01 октября 2018

Если вы хотите получить индекс ключевого слова public, предшествующего getGenbestillingerTilbageKvantitet имени метода, тогда вы можете использовать String.lastIndexOf(str) подстроки, созданной от начала до индекса getGenbestillingerTilbageKvantitet имени метода.Примерно так:

int pubKeyIdx = fileContent.substring(0, index7).lastIndexOf("public")

где index7 переменная содержит индекс имени метода.

...