1

Java では、文字列としてのソース コードと中かっこの開始を指定して、Java ソース コードのサンプルに対応する中かっこを生成することは可能ですか?

public class FindFunctionStartAndEnd{
    public static Object findCorrespondingCurlyBrace(String sourceCode, string startingPosition){
        //return the string position that corresponds to the matching curly brace
        //the input string should be the source code of a Java class
        //if sourceCode is not valid Java code, return false
    }
}
4

1 に答える 1

2

文字列を調べて、開始位置から始まる開き括弧と閉じ括弧を数え、それらを一致させる必要があります。問題は、それらを無視する必要があるいくつかのケースがあります(ここにいくつかの例があります):

  • 行コメント内(a//「改行」の間)
  • ブロックコメント内((/*行コメントで非表示にされていない)との間*/
  • Stringリテラル内(2つの一致する"'の間(エスケープ( 、ただし、または\"に注意!))を無視します)\\"\\\"
  • charリテラル内(2つの一致するもの'の間)
  • おそらくもっと

文字列を実行するときにこれらすべてのカウンターを保持するか、関数本体全体(リスト内のこれらすべてのケースを含む)に一致する正規表現を考え出し、それを1回適用して、一致する場所を確認することができます。インデックスは、本体が見つかった後に終了します。

どちらも、すべての場合に正しく実行するために少し関与する必要があるため、たとえば、事前に作成された正規表現の例を見つけることができるかどうかを確認するためにGoogleにアクセスすることをお勧めします。

于 2013-02-21T00:46:14.037 に答える