Java 正規表現とアプレットの詳細実装

正規表現パターンクラスの高度な利用法

Patternクラスには、フラグを使用した高度なパターン作成機能が提供されています。以下は利用可能なフラグ定数です:

  • Pattern.CANON_EQ - 正規等価性を有効化
  • Pattern.CASE_INSENSITIVE - 大文字小文字を区別しないマッチング
  • Pattern.COMMENTS - パターン内のコメントと空白を許可
  • Pattern.DOTALL - 行末文字を含む任意の文字にマッチ
  • Pattern.LITERAL - リテラル解析を有効化
  • Pattern.MULTILINE - 複数行モードを有効化
  • Pattern.UNICODE_CASE - Unicode対応の大文字小文字折り返し
  • Pattern.UNIX_LINES - UNIX行モードを有効化
// 複数フラグの組み合わせ例
int flagSet = Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE;
Pattern compiledPattern = Pattern.compile("searchPattern", flagSet);

Matcherクラスの実用的なメソッド

Matcherクラスは以下のカテゴリに分類されるメソッドを提供します:

インデックス操作メソッド

Matcher matcher = pattern.matcher(inputString);
while (matcher.find()) {
    int startPosition = matcher.start();
    int endPosition = matcher.end();
    String matchedText = matcher.group();
}

検索メソッド

boolean foundMatch = matcher.find();
boolean exactMatch = matcher.matches();
boolean partialMatch = matcher.lookingAt();

置換メソッド

String replacedAll = matcher.replaceAll("replacement");
String replacedFirst = matcher.replaceFirst("replacement");

Javaアプレットの実装詳細

アプレットの基本構造

import javax.swing.JApplet;
import javax.swing.JLabel;

public class BasicApplet extends JApplet {
    @Override
    public void init() {
        try {
            javax.swing.SwingUtilities.invokeAndWait(() -> {
                JLabel label = new JLabel("Hello World");
                add(label);
            });
        } catch (Exception e) {
            System.err.println("GUI initialization failed");
        }
    }
}

アプレットのライフサイクル管理

public class LifecycleApplet extends JApplet {
    private StringBuilder statusLog;
    
    @Override
    public void init() {
        statusLog = new StringBuilder();
        appendStatus("初期化中...");
    }
    
    @Override
    public void start() {
        appendStatus("開始中...");
    }
    
    @Override
    public void stop() {
        appendStatus("停止中...");
    }
    
    @Override
    public void destroy() {
        appendStatus("破棄準備中...");
    }
    
    private void appendStatus(String message) {
        statusLog.append(message).append("\n");
        repaint();
    }
}

DOM操作とブラウザ連携

import com.sun.java.browser.plugin2.DOM;
import org.w3c.dom.Document;

public class DOMApplet extends JApplet {
    public void manipulateDOM() {
        try {
            Document document = DOM.getDocument(this);
            // DOM操作の実装
        } catch (Exception e) {
            System.err.println("DOM access not available");
        }
    }
}

JavaScript連携処理

import netscape.javascript.JSObject;

public class JSInteractionApplet extends JApplet {
    public void callJavaScript() {
        try {
            JSWindow window = JSObject.getWindow(this);
            window.call("javascriptFunction", new Object[]{"parameter"});
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

アプレットパラメータの処理

public class ParameterApplet extends JApplet {
    private String configValue;
    
    @Override
    public void init() {
        configValue = getParameter("configParam");
        // パラメータに基づいた処理を実装
    }
}

タグ: Java正規表現 Patternクラス Matcherクラス Javaアプレット Swing

7月10日 20:22 投稿