0

文字列の左端の内側のインデックスを検出するコードを書いています (文字列の解析を行っています)。

次のコードは正しいように見えますか?

 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
4

1 に答える 1

0

はい。ただし、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);
  }
于 2013-02-26T00:41:15.630 に答える