正規表現パターンクラスの高度な利用法
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");
// パラメータに基づいた処理を実装
}
}