Соответствие индекса скобок Java
Я пишу код, чтобы обнаружить самый левый крайний индекс строки (я делаю разбор строки)
Следующий код выглядит правильно?
String t = "VREF_DAC_BAND_GAP_(VALUE|DELTA|TRIM|K(7-0|15-9))"
int lb_ind = t.indexOf('(', 0); // left bracket index
int rb_ind = t.indexOf(')', lb_ind); //right bracket index
while((t.indexOf("(", lb_ind+1) != -1) && (t.indexOf("(", lb_ind+1) < rb_ind))
{
lb_ind = t.indexOf('(', lb_ind+1);
}
// lb_ind should now contain the position of the inner left most parenthesis
1 ответ
Да, но вы можете использовать приведенное ниже вместо цикла while.
lastIndexOf (String str, int fromIndex)
Возвращает индекс в этой строке последнего вхождения указанной подстроки с обратным поиском, начиная с указанного индекса.
String t = "VREF_DAC_BAND_GAP_(VALUE|DELTA|TRIM|K(7-0|15-9))"
int lb_ind = t.indexOf('(', 0); // left bracket index
int rb_ind = t.indexOf(')', lb_ind); //right bracket index
if(t.lastIndexOf("(", rb_ind) != -1)
{
lb_ind = t.lastIndexOf("(", rb_ind);
}