0

タイトルは、パブリック クラスの宣言は常に同じですが、名前はさまざまであることを意味します。

public class <class name>

パブリック クラスの Java ソース コード (JTextArea 内) を検索したいと考えています。

したがって、最初に次のものが見つかります。

public class Example1またはpublic class Example2またはpublic class Example3

等..

Example1次に、文字列またはExample2またはを保存したいExample3

このプログラムは Java で作成されます。

誰でも私を助けることができますか?

アップデート:

Pattern および Matcher クラスにとって非常に新しいものでした。

private String findPublicClass() {
    Pattern pattern = Pattern.compile("\\s*public\\s+class\\s+(\\w+)");
    Matcher matcher = pattern.matcher(txtSource.getText());
    String s = null;
    boolean found = false;
    while (matcher.find()) {
        s = matcher.group(1);
        found = true;
    }
    if(!found)
        System.out.println("No public class found.");
    return s;
}
4

3 に答える 3

3

私のアドバイスは、Java チュートリアルの正規表現に関するレッスンに従うことです。

于 2013-03-31T16:28:54.580 に答える
-1

0 から L-1 (長さ) までのループを実行して文字列を読み取り、一致した文字数を示すインデックス "i" を使用する方法は、簡単で汚れた非常に高速な方法です。

文字が一致するたびに i++ になります。それ以外の場合は i=0;

このように、i が検索対象の文字列の長さに等しい場合、一致が得られます。残りは、あなたが探している他の部分 (可変部分) です。

お役に立てれば!

于 2013-03-31T16:34:24.807 に答える
-1

名前だけが変化しているため、定数部分は「public class」であり、固定長は 10 です。したがって、substring(10) を使用していつでもクラス名を取得できます。

それが役立つことを願っています。

編集:

サンプルコード

If(line.contains("public class"))
  return line.substring(10);
于 2013-03-31T16:25:45.887 に答える