Соответствие индекса скобок 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);
  }
Другие вопросы по тегам