程序包 qhs.sys

类 KeyValueParser


  • public class KeyValueParser
    extends java.lang.Object

    KeyValueParser类型对象用于分析键值,对键值有以下要求、规定:

    1、键值的键名不应包含空格、';'、'='、双引号等字符。

    2、键值的值属于字符串类型或者字符串数组类型。属于字符串数组类型的值的每一个元素是一个字符串,数组元素之间用','字符进行分隔。 如果属于字符串类型的值、数组元素包含有双引号、'\'字符,则须对上述字符进行转义,并在上述字符的左侧增加一个'\'字符。

    3、键名与值之间用'='字符进行分隔,键值之间用';'字符进行分隔。

    如:
       a="b";c=["d", "e\"f", "g"];h="i\\j"
     

    上面的键值串中,存在有3个键值,键名分别为a、c、h。

    键名为a的键值的值属于字符串类型,等于"b"。

    键名为c的键值的值属于字符串数组类型,数组元素有"d", "e"f", "g"。

    键名为h的键值的值属于字符串类型,等于"i\j"。

    使用KeyValueParser类型对象分析上面的键值串:
    ......
    String keyValues = "a=\"b\";c=[\"d\", \"e\\\"f\", \"g\"];h=\"i\\\\j\"";
    qhs.sys.KeyValueParser parser = new qhs.sys.KeyValueParser();
    parser.parse(keyValues);
    
    String[] keys = parser.getKeys();
    
    for (final String key : keys) {
        qhs.sys.KeyValue kv = parser.get(key);
        String value1 = null;
        String[] value2 = null;
    
        String s = "键名为" + key + "的键值的值属于";
    
        if ((value1 = kv.getValue()) != null) {
            s += "字符串类型,等于\"" + value1 + "\"";
        } else {
            value2 = kv.getArray();
            s += "字符串数组类型,数组元素有";
            for (int i = 0; i < value2.length; i++) {
                if (0 < i) {
                    s += ", ";
                }
                s += "\"" + value2[i] + "\"";
            }
        }
    
        System.out.println(s + "。");
    }
    ......
     
    • 方法概要

      所有方法 实例方法 具体方法 
      修饰符和类型 方法 说明
      KeyValue get​(java.lang.String key)
      跟据键名检索键值。
      java.lang.String[] getKeys()
      返回已缓存的所有键值的键名。
      boolean parse​(java.lang.String keyValues)
      分析键值并且缓存键值。
      • 从类继承的方法 java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 构造器详细资料

      • KeyValueParser

        public KeyValueParser()
    • 方法详细资料

      • parse

        public boolean parse​(java.lang.String keyValues)
        分析键值并且缓存键值。
        参数:
        keyValues - 包含1个键值以上的字符串。
        返回:
        true值表示分析键值的操作是成功的,false值表示分析键值的操作是失败的, 失败的原因可能是keyValues参数值内部的键值不符合要求,也可能是字符不足。
      • get

        public KeyValue get​(java.lang.String key)
        跟据键名检索键值。

        本方法的调用应放在调用parse()方法以后,本方法在已缓存的键值上检索键名与key参数值相等的键值并且返回检索到键值。

        参数:
        key - 用于检索键值的键名。
        返回:
        如果检索到键值,就返回缓存有键值的KeyValue类型对象,否则,就返回null。
      • getKeys

        public java.lang.String[] getKeys()
        返回已缓存的所有键值的键名。

        本方法的调用应放在调用parse()方法以后。

        返回:
        元素为键名的组数。