博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简单的字符串字典工具类 - DictProp
阅读量:6862 次
发布时间:2019-06-26

本文共 4369 字,大约阅读时间需要 14 分钟。

DictProp是一个极其简单的字符串分析工具类,主要用于分析由固定分隔符划分的字符串信息,将它们放在字典表中以作进一步的应用。

比如有一个字符串:  Data Source=DEBUG;User ID=wang;Password=wang123;Unicode=True

String connStr = "Data Source=DEBUG;User ID=wang;Password=wang123;Unicode=True"; //根据源字符串、第一分隔符、第二分隔符新建字符串字典工具类DictProp dp = new DictProp(connStr, ";", "="); //这时可以提取相关的信息string dataSource = dp.GetPropStr("Data Source"); bool isUnicode = dp.GetPropBool("Unicode");//....

 

它的实现如下:

using System;using System.Collections.Generic;using System.Text;using System.Collections;namespace xxxxx{    ///     /// 从字段中取自定义属性的操作类    ///     public class DictProp    {        ///         /// 包含属性的字符串        ///         private String PropStr;        ///         /// 包含属性的Hash表        ///         private Dictionary
propDict; ///
/// 行分隔符 /// String Split1 = "\r\n"; ///
/// 行内属性名称和值之间的分隔符 /// String Split2 = "="; ///
/// 根据要分析的字符串,第一分隔符和第二分隔符新建一个哈希对象 /// ///
待分解的字符串 ///
第一分隔符 ///
第二分隔符 public DictProp(String propStr, string split1, string split2) { PropStr = propStr; Split1 = split1; Split2 = split2; Str2Hash(); } ///
/// 键-值对 /// public Dictionary
KeyValues { get { return propDict; } } ///
/// 将字符串转成Hash表 /// ///
private Dictionary
Str2Hash() { if (propDict == null) { propDict = new Dictionary
(); } else { propDict.Clear(); } char s1 = '\n'; char s2 = '='; String propstr = PropStr.Replace(Split1, s1.ToString()).Replace(Split2, s2.ToString()); string[] propArr = propstr.Split(s1); foreach (String s in propArr) { string[] sArr = s.Split(new char[] { s2 }, 2); if (sArr.Length > 1) { SetProp(sArr[0].Trim(), sArr[1].Trim()); } else { SetProp(sArr[0].Trim(), ""); } } return propDict; } ///
/// 当字典表为空时才将字符串转换成Hash表 /// ///
public Dictionary
Str2HashWhenEmpty() { if (propDict == null || propDict.Count == 0) Str2Hash(); return propDict; } ///
/// 强制字典表为空,再将字符串转换成Hash表 /// ///
public Dictionary
Str2HashReset() { propDict = null; Str2Hash(); return propDict; } ///
/// 将字典表转成字符串 /// ///
public String Hash2Str() { if (propDict == null) return null; PropStr = ""; foreach (KeyValuePair
k in propDict) { String s = Split1 + k.Key.ToString() + Split2 + k.Value.ToString(); PropStr += s; } if (PropStr != "") PropStr = PropStr.Substring(Split1.Length); return PropStr; } ///
/// 设置一个属性 /// ///
属性名称 ///
属性值 public void SetProp(String propName, object o) { propDict[propName] = CommOp.ToStr(o); } ///
/// 获取字符型属性 /// ///
///
public String GetPropStr(String propName) { return PropExists(propName) ? CommOp.ToStr(propDict[propName]) : String.Empty; } ///
/// 获取整型属性 /// ///
///
public int GetPropInt(String propName) { return PropExists(propName) ? CommOp.ToInt(propDict[propName]) : 0; } ///
/// 是否存在指定属性名称 /// ///
///
public bool PropExists(String propName) { return propDict.ContainsKey(propName); } ///
/// 获取浮点型属性 /// ///
///
public float GetPropFloat(String propName) { return PropExists(propName) ? CommOp.ToFloat(propDict[propName]) : 0; } ///
/// 获取双精度数 /// ///
///
public double GetPropDouble(String propName) { return PropExists(propName) ? CommOp.ToDouble(propDict[propName]) : 0; } ///
/// 获取日期 /// ///
///
public DateTime GetPropDate(String propName) { return PropExists(propName) ? CommOp.ToDateTime(propDict[propName]) : DateTime.MinValue; } ///
/// 获取布尔型属性 /// ///
///
public bool GetPropBool(String propName) { if (propDict.ContainsKey(propName)) { return CommOp.ToStr(propDict[propName]).ToLower() == "true"; } else { return false; } } }}

 

转载于:https://www.cnblogs.com/bwangel/archive/2012/10/30/2747099.html

你可能感兴趣的文章
poj 1704 Georgia and Bob(阶梯博弈)
查看>>
JQuery中的$.ajax()
查看>>
js 幻灯片
查看>>
Keras序列模型学习
查看>>
[bzoj2809] 派遣
查看>>
Windows2003上使用IIS7 Express使用FastCgi运行php
查看>>
安装程序时 “向数据库写入数据时发生错误!”
查看>>
图文:高春辉和他的网站梦
查看>>
网页之间的参数传递
查看>>
初步学习Django-第四篇:views.PY文件详解
查看>>
OAuth2简易实战(四)-Github社交联合登录
查看>>
Netty学习大纲
查看>>
OC中的私有方法
查看>>
分享几段JavaScript
查看>>
C++中的多态和Objective-C中的“多态”
查看>>
js基础五
查看>>
构建执法阅读笔记01
查看>>
剑指offer:合并两个排序的链表
查看>>
1602液晶显示实验
查看>>
图片水印
查看>>