把格式化字符串分割为数组
/// <summary> /// 把格式化字符串分割为数组 /// </summary> /// <param name="tmpString">需要格式化的字符串</param> /// <param name="tmpSplit">分割字符串</param> /// <returns>数组</returns> 根据给定的信息,我们可以将这段代码的关键知识点概括如下: ### 把格式化字符串分割为数组 #### 概述 此段代码实现的功能是将一个指定的格式化字符串按照另一个特定的字符串进行分割,并将分割后的结果存储在一个字符串数组中返回。 #### 方法签名 ```csharp public static string[] StrToArray(string tmpString, string tmpSplit) ``` #### 参数说明 - **`tmpString`**:需要被格式化(即分割)的原始字符串。 - **`tmpSplit`**:用作分割依据的字符串。 #### 返回值 - 返回类型为 `string[]` 的数组,该数组包含了由 `tmpString` 按照 `tmpSplit` 分割后得到的所有子字符串。 #### 实现细节 1. **初始化变量**: - 创建一个 `char` 类型的变量 `split` 用于保存作为分隔符的字符。 - 将输入的 `tmpString` 转换成字符数组 `temp`。 - 定义了一个包含特殊字符和英文字母的字符串 `"~!@#$%^&*._=-+,ABCDEFGHIJKLMNOPQRSTUVWXYZ"` 并将其转换为字符数组 `tmp`。 - 创建一个 `ArrayList` 类型的对象 `mTemp` 用来暂存 `temp` 数组中的字符。 2. **确定分割字符**: - 遍历 `tmp` 字符数组,寻找一个未在 `mTemp` 中出现的字符作为分隔符。 - 如果找到了合适的字符,则赋值给 `split` 变量并退出循环。 3. **替换与分割**: - 使用找到的 `split` 替换 `tmpString` 中的 `tmpSplit`。 - 使用 `split` 对替换后的 `tmpString` 进行分割,并返回分割后的字符串数组。 4. **异常处理**: - 如果没有找到合适的分隔符(即 `split` 仍为初始值),则返回 `null`。 #### 示例代码解析 - 在方法内部首先定义了一个空字符 `split` 和一个 `ArrayList` 类型的 `mTemp` 用于临时存储 `tmpString` 中的字符。 - 接着遍历了 `tmpString` 中的每一个字符并将其添加到 `mTemp` 中。 - 然后通过遍历特殊字符和英文字母组成的字符串 `tmp` 来寻找一个合适的分隔符。这里的逻辑是为了避免选择一个已经存在于 `tmpString` 中的字符作为分隔符,从而避免误分割。 - 找到合适的分隔符后,使用 `tmpSplit` 替换 `tmpString` 中的分隔符为 `split`。 - 最后调用 `Split` 方法将 `tmpString` 按照 `split` 进行分割,并返回结果。 #### 注意事项 - 本方法依赖于 `tmpSplit` 不出现在 `tmpString` 中或能够找到一个合适的 `split` 作为分隔符。 - 如果 `tmpSplit` 为空或者与 `tmpString` 中的任何字符相同,则可能导致方法无法正确执行。 - 此方法在寻找分隔符时,采用的是特殊字符集和字母集合,这种方法虽然简单但可能存在效率问题,尤其是在 `tmpString` 较长的情况下。 - 如果 `tmpSplit` 和 `tmpString` 含有相同的字符,则可能导致无法找到合适的分隔符,进而导致方法返回 `null`。 这段代码提供了一种较为独特的方式来处理字符串分割的问题,但同时也存在一些潜在的问题需要注意。
/// 把格式化字符串分割为数组
/// </summary>
/// <param name="tmpString">需要格式化的字符串</param>
/// <param name="tmpSplit">分割字符串</param>
/// <returns>数组</returns>
public static string[] StrToArray(string tmpString, string tmpSplit)
{
char split = ' ';
char[] temp = tmpString.ToCharArray();
char[] tmp = "~!@#$%^&*._=-+,ABCDEFGHIJKLMNOPQRSTUVWXYZ".ToCharArray();
ArrayList mTemp = new ArrayList();
foreach (char m in temp)
{
mTemp.Add(m);
}
for (int i = 0; i < tmp.Length; i++)
{
if (!mTemp.Contains(tmp[i]))
{
split = tmp[i];
break;
}
}
if (split != ' ')
{
tmpString = tmpString.Replace(tmpSplit, split.ToString());
return tmpString.Split(split);
- 暗夜困觉觉2014-06-03OK可以学习。
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助