程序包 qhs.sys
类 KeyValueParser
- java.lang.Object
-
- qhs.sys.KeyValueParser
-
public class KeyValueParser extends java.lang.ObjectKeyValueParser类型对象用于分析键值,对键值有以下要求、规定:
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 + "。"); } ......
-
-
构造器概要
构造器 构造器 说明 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()方法以后。
- 返回:
- 元素为键名的组数。
-
-