写一个字符串分割程序,在不使用string类和Array类内置函数的前提下完成该功能:

 写一个字符串分割程序,在不使用string类和Array类内置函数的前提下完成该功能:
List<string> Split(string str, params char[] splitCharList)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace SplitImplement
{
    //========================================================================
    //  クラス名 : SplitImplement
    /// <summary>
    /// SplitImplement
    /// </summary>
    /// <remarks>
    /// 写一个字符串分割程序,
    /// 在不使用string类和Array类内置函数的前提下完成该功能:
    /// List<string> Split(string str, params char[] splitCharList)
    /// </remarks>
    //========================================================================
    class SplitImplement
    {
        //========================================================================
        //  メソッド名 : Main
        /// <summary>
        /// Main
        /// </summary>
        /// <remarks>
        /// 实现Split方法
        /// </remarks>
        /// <param name="args"></param>
        //========================================================================
        static void Main(string[] args)
        {
            string str = "a,2.3,b,df,re,ab";
            List<string> arr = Split(str, ',', '.','b');
            foreach (string s in arr)
            {
                Console.WriteLine(s);
            }
            Console.ReadKey();
        }

        //========================================================================
        //  メソッド名 : Split
        /// <summary>
        /// Split方法
        /// </summary>
        /// <remarks>
        /// List<string> Split(string str, params char[] splitCharList)
        /// </remarks>
        /// <param name="str"></param>
        /// <param name="splitchar"></param>
        /// <returns></returns>
        //========================================================================
        public static List<string> Split(string str, params char[] splitchar)
        {
            List<string> list = new List<string>();

            StringBuilder stringBuilder = new StringBuilder();

            for (int i = 0; i < str.Length; i++)
            {
                char c = str[i];

                bool needReflesh = false;
                foreach (char ch in splitchar)
                {
                    if (ch == c)
                    {
                        needReflesh = true;
                        break;
                    }
                }

                if (needReflesh == true)
                {
                    if (stringBuilder.Length > 0)
                    {
                        list.Add(stringBuilder.ToString());
                        stringBuilder.Clear();
                    }
                }
                else
                {
                    stringBuilder.Append(c);
                }
            }

            if (stringBuilder.Length > 0)
            {
                list.Add(stringBuilder.ToString());
            }
            return list;
        }
    }
}


 

猜你喜欢

转载自blog.csdn.net/JasmineDawn/article/details/7211229