⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cstring.cs

📁 小型项目组用的工作日志记录系统
💻 CS
字号:
/*
 * CString.cs
 * 
 * 作者:邱观琛
 * 创建时间:2002-5-7
 * 最后修改:2002-6-20
 * 
 * 
 * 提供一些主要涉及到字符串操作的函数,包括固定模式的字符串分割与合并,
 * 细微的字符串处理等。
 * 
 */

using System;
using System.Data;
using System.Collections;

namespace CFC
{
	/// <summary>
	/// 提供一些主要涉及到字符串操作的函数
	/// </summary>
	public class CString
	{
		private CString()
		{
		}


		#region public const char Separator1 = '~' : 字符串的一级分割符
		/// <summary>
		/// 字符串的一级分割符:~
		/// </summary>
		public const char Separator1 = '~';
		#endregion

		#region public const char Separator2 = '`' : 字符串的二级分割符
		/// <summary>
		/// 字符串的二级分割符:`
		/// </summary>
		public const char Separator2 = '`';
		#endregion

		#region public const char Separator3 = '^' : 字符串的三级分割符
		/// <summary>
		/// 字符串的三级分割符:^
		/// </summary>
		public const char Separator3 = '^';
		#endregion



		#region public static string SetStrLength(string str, int Length, char FillChar) : 给字符串类型的数据设置成指定长度
		/// <summary>
		/// 给字符串类型的数据设置成指定长度。
		/// 如果过短,以指定固定字符填充。
		/// 如果过长,取其右部相应长度的一截。
		/// </summary>
		/// <param name="str">需要设置长度的字符串</param>
		/// <param name="Length">新的长度</param>
		/// <param name="FillChar">如果过短,用以填充的字符</param>
		/// <returns>新的固定长度的字符串</returns>
		public static string SetStrLength(string str, int Length, char FillChar)
		{
			string Result = str;
			if (str.Length < Length)
			{
				for (int i=0; i<Length-str.Length; i++)
				{
					Result = FillChar + Result;
				}
			}
			else if (str.Length > Length)
			{
				Result = Result.Substring(str.Length-Length);
			}
			return Result;
		}
		#endregion



		#region 各种一级合并

		#region public static string Combine1(object[] Values) : 将指定对象数组合并成一个字符串
		/// <summary>
		/// 将指定对象数组合并成一个字符串,并以一级分割符作为元素间的界线。
		/// </summary>
		/// <param name="Values">需要合并的对象数组</param>
		/// <returns>合并成的字符串</returns>
		public static string Combine1(object[] Values)
		{
			string Result = "";
			for (int i=0; i<Values.Length; i++)
			{
				if (i!=0) Result += Separator1;
				Result += Values[i].ToString();
			}
			return Result;
		}
		#endregion


		#region public static string Combine1(ArrayList Values) : 将指定ArrayList合并成一个字符串
		/// <summary>
		/// 将指定ArrayList合并成一个字符串,并以一级分割符作为元素间的界线。
		/// </summary>
		/// <param name="Values">需要合并的ArrayList</param>
		/// <returns>合并成的字符串</returns>
		public static string Combine1(ArrayList Values)
		{
			string Result = "";
			for (int i=0; i<Values.Count; i++)
			{
				if (i!=0) Result += Separator1;
				Result += Values[i].ToString();
			}
			return Result;
		}
		#endregion
	

		#region public static string Combine1(DataView dv, string FieldName) : 将指定DataView中所有记录在指定字段上的值合并成一个字符串
		/// <summary>
		/// 将指定DataView中所有记录在指定字段上的值合并成一个字符串。
		/// </summary>
		/// <param name="dv">需要合并数据的DataView</param>
		/// <param name="FieldName">需要合并数据的字段名称</param>
		/// <returns>合并成的字符串</returns>
		public static string Combine1(DataView dv, string FieldName)
		{
			string Result = "";
			for (int i=0; i<dv.Count; i++)
			{
				if (i!=0) Result += Separator1;
				Result += dv[i][FieldName].ToString();
			}
			return Result;
		}
		#endregion


		#region public static string Combine1(object[] Values, char Separator) :将指定对象数组合并成一个字符串
		/// <summary>
		/// 将指定对象数组合并成一个字符串,并以指定分割符作为元素间的界线。
		/// </summary>
		/// <param name="Values">需要合并的对象数组</param>
		/// <param name="Separator">分割符</param>
		/// <returns>合并成的字符串</returns>
		public static string Combine1(object[] Values, char Separator)
		{
			string Result = "";
			for (int i=0; i<Values.Length; i++)
			{
				if (i!=0) Result += Separator;
				Result += Values[i].ToString();
			}
			return Result;
		}
		#endregion


		#region public static string Combine1(ArrayList Values, char Separator) : 将指定ArrayList合并成一个字符串
		/// <summary>
		/// 将指定ArrayList合并成一个字符串,并以指定分割符作为元素间的界线。
		/// </summary>
		/// <param name="Values">需要合并的ArrayList</param>
		/// <param name="Separator">分割符</param>
		/// <returns>合并成的字符串</returns>
		public static string Combine1(ArrayList Values, char Separator)
		{
			string Result = "";
			for (int i=0; i<Values.Count; i++)
			{
				if (i!=0) Result += Separator;
				Result += Values[i].ToString();
			}
			return Result;
		}
		#endregion


		#region public static string Combine1(DataView dv, string FieldName, char Separator) : 将指定DataView中所有记录在指定字段上的值合并成一个字符串
		/// <summary>
		/// 将指定DataView中所有记录在指定字段上的值合并成一个字符串,并以指定分割符作为元素间的界线。
		/// </summary>
		/// <param name="dv">需要合并数据的DataView</param>
		/// <param name="FieldName">需要合并数据的字段名称</param>
		/// <param name="Separator">分割符</param>
		/// <returns>合并成的字符串</returns>
		public static string Combine1(DataView dv, string FieldName, char Separator)
		{
			string Result = "";
			for (int i=0; i<dv.Count; i++)
			{
				if (i!=0) Result += Separator1;
				Result += dv[i][FieldName].ToString();
			}
			return Result;
		}
		#endregion


		#region public static string Combine1(object[] Values, string Separator) : 将指定对象数组合并成一个字符串
		/// <summary>
		/// 将指定对象数组合并成一个字符串,并以指定字符串作为元素间的界线。
		/// </summary>
		/// <param name="Values">需要合并的对象数组</param>
		/// <param name="Separator">用以分割的字符串</param>
		/// <returns>合并成的字符串</returns>
		public static string Combine1(object[] Values, string Separator)
		{
			string Result = "";
			for (int i=0; i<Values.Length; i++)
			{
				if (i!=0) Result += Separator;
				Result += Values[i].ToString();
			}
			return Result;
		}
		#endregion


		#region public static string Combine1(ArrayList Values, string Separator) : 将指定ArrayList合并成一个字符串
		/// <summary>
		/// 将指定ArrayList合并成一个字符串,并以指定字符串作为元素间的界线。
		/// </summary>
		/// <param name="Values">需要合并的ArrayList</param>
		/// <param name="Separator">用以分割的字符串</param>
		/// <returns>合并成的字符串</returns>
		public static string Combine1(ArrayList Values, string Separator)
		{
			string Result = "";
			for (int i=0; i<Values.Count; i++)
			{
				if (i!=0) Result += Separator;
				Result += Values[i].ToString();
			}
			return Result;
		}
		#endregion


		#region public static string Combine1(DataView dv, string FieldName, string Separator) : 将指定DataView中所有记录在指定字段上的值合并成一个字符串
		/// <summary>
		/// 将指定DataView中所有记录在指定字段上的值合并成一个字符串,并以指定字符串作为元素间的界线。
		/// </summary>
		/// <param name="dv">需要合并数据的DataView</param>
		/// <param name="FieldName">需要合并数据的字段名称</param>
		/// <param name="Separator">用以分割的字符串</param>
		/// <returns>合并成的字符串</returns>
		public static string Combine1(DataView dv, string FieldName, string Separator)
		{
			string Result = "";
			for (int i=0; i<dv.Count; i++)
			{
				if (i!=0) Result += Separator1;
				Result += dv[i][FieldName].ToString();
			}
			return Result;
		}
		#endregion

		#endregion


		#region 各种一级分割

		#region public static string[] Divide1(string str) : 将指定字符串按一级分割符分割成字符串数组
		/// <summary>
		/// 将指定字符串按一级分割符分割成字符串数组。
		/// </summary>
		/// <param name="str">需要分割的字符串</param>
		/// <returns>分割成的字符串数组</returns>
		public static string[] Divide1(string str)
		{
			return str.Split(Separator1);
		}
		#endregion

		#endregion


		#region 各种二级合并

		#region public static string Combine2(object[,] Values) : 将指定的对象二维数组合并成一个字符串
		/// <summary>
		/// 将指定的对象二维数组合并成一个字符串,并以一级分割符作为一级元素间的界线,
		/// 二级分割符作为二级元素间的界线。
		/// </summary>
		/// <param name="Values">需要合并的对象二维数组</param>
		/// <returns>合并成的字符串</returns>
		public static string Combine2(object[,] Values)
		{
			string Result = "";
			for (int i=0; i<Values.GetLength(0); i++)
			{
				if (i!=0) Result += Separator1;
				for (int j=0; j<Values.GetLength(1); j++)
				{
					if (j!=0) Result += Separator2;
					Result += Values[i,j].ToString();
				}
			}
			return Result;
		}
		#endregion


		#region public static string Combine2(object[][] Values) : 将指定的对象二维锯齿数组合并成一个字符串
		/// <summary>
		/// 将指定的对象二维锯齿数组合并成一个字符串,并以一级分割符作为一级元素间的界线,
		/// 二级分割符作为二级元素间的界线。
		/// </summary>
		/// <param name="Values">需要合并的对象二维锯齿数组</param>
		/// <returns>合并成的字符串</returns>
		public static string Combine2(object[][] Values)
		{
			string Result = "";
			for (int i=0; i<Values.Length; i++)
			{
				if (i!=0) Result += Separator1;
				for (int j=0; j<Values[i].Length; j++)
				{
					if (j!=0) Result += Separator2;
					Result += Values[i][j].ToString();
				}
			}
			return Result;
		}
		#endregion

		#endregion


		#region 各种二级分割

		#region public static string[,] Divide2(string str, int Length2) : 将指定字符串先按一级分割符,再按二级分割符分割成二维数组
		/// <summary>
		/// 将指定字符串先按一级分割符,再按二级分割符分割成二维数组。
		/// </summary>
		/// <param name="str">需要分割的字符串</param>
		/// <param name="Length2">二维数组第二级的长度。如果为0,系统将自动计算。</param>
		/// <returns>分割成的字符串二维数组</returns>
		public static string[,] Divide2(string str, int Length2)
		{
			string[] SemiResult = str.Split(Separator1);
			int Length1 = SemiResult.Length;
			if (Length1 == 0)
				return new string[0,0];

			if (Length2 == 0)
				Length2 = SemiResult[0].Split(Separator2).Length;
			if (Length2 == 0)
				return new string[Length1,0];

			string[,] Result = new string[Length1,Length2];
			for (int i=0; i<Length1; i++)
			{
				string[] Temp = SemiResult[i].Split(Separator2);
				for (int j=0; j<Length2; j++)
				{
					Result[i,j] = Temp[j];
				}
			}
			return Result;
		}
		#endregion


		#region public static string[][] Divide2(string str) : 将指定字符串先按一级分割符,再按二级分割符分割成二维锯齿数组
		/// <summary>
		/// 将指定字符串先按一级分割符,再按二级分割符分割成二维锯齿数组。
		/// </summary>
		/// <param name="str">需要分割的字符串</param>
		/// <returns>分割成的字符串二维锯齿数组</returns>
		public static string[][] Divide2(string str)
		{
			string[] SemiResult = str.Split(Separator1);
			int Length1 = SemiResult.Length;
			if (Length1 == 0)
				return new string[0][];

			string[][] Result = new string[Length1][];
			for (int i=0; i<Length1; i++)
			{
				Result[i] = SemiResult[i].Split(Separator2);
			}
			return Result;
		}
		#endregion

		#endregion
	}
}

⌨️ 快捷键说明

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