zscriptengine.java

来自「用Java写的报表.功能如下: 0.内建网络打印,网络预览功能! 1.文件操作。」· Java 代码 · 共 86 行

JAVA
86
字号
/*
 * Copyright 2002 EZCell , Inc. All rights reserved.
 * Version  1.0.
 * Author   W.John
 */
package ezcell;

import java.util.Hashtable;
import java.util.StringTokenizer;


/**
 * <p>Title: </p>
 * <p>Description: </p>
 * <p>Copyright: Copyright (c) 2001</p>
 * <p>Company: </p>
 * @author unascribed
 * @version 1.0
 */
public class ZScriptEngine extends Hashtable {
    private static ZScriptEngine sharedInstance;
    static final String PAGE_NO = "pageNo";
    static final String PAGE_COUNT = "pageCount";
    static final String BOOK_TITLE = "bookTitle";
    static final String SHEET_TITLE = "sheetTitle";
    static final String macroFlag = "&";

    /**
     *
     * @return
     */
    static public ZScriptEngine getSharedInstance() {
        if (sharedInstance == null) {
            sharedInstance = new ZScriptEngine();
        }

        return sharedInstance;
    }

    /**
     *
     * @param source
     *
     * @return
     */
    public String translate(String source) {
        if (source.indexOf(macroFlag) < 0) {
            return source;
        }

        source = "&" + source;

        String res = "";

        StringTokenizer st = new StringTokenizer(source, macroFlag);
        boolean appendEnd;

        while (st.hasMoreElements()) {
            String save;
            String token;
            save = token = st.nextToken();

            int i = token.indexOf(";");
            String append = "";

            if (i >= 0) {
                append = token.substring(i + 1);
                token = token.substring(0, i);
            }

            String value = value = (String) this.get(token);

            if (value != null) {
                res = res + value + append;
            } else {
                res = res + save;
            }
        }

        if (res.startsWith("&")) {
            res = res.substring(1);
        }

        return res;
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?