• C# 如何使用长度来切分字符串


    参考网址:https://blog.csdn.net/yenange/article/details/39637211

        using System;  
        using System.Collections.Generic;  
        using System.Linq;  
        using System.Text;  
        using System.Data;  
          
        namespace Study  
        {  
            public static class Program2  
            {  
                static void Main(string[] args)  
                {  
                    string[] source = {  
                        null,  
                        string.Empty,  
                        "1234",  
                        "12345",  
                        "123456",  
                        "1234567890",  
                    };  
                    int charNum = 5;  
                    int i = 1;  
                    foreach (string str in source)  
                    {  
                        Console.WriteLine("原字符串{0}:{1}", (i++).ToString(), str);  
                        string[] r = str.SplitByLen(charNum, "{0}/{1}){2}");  
                        foreach (string s in r)  
                        {  
                            Console.WriteLine("{0}", s);  
                        }  
                        Console.WriteLine();  
                    }  
                    Console.Read();  
                }  
          
                /// <returns></returns>  
                /// <summary>  
                /// 按字符串长度切分成数组  
                /// </summary>  
                /// <param name="str">原字符串</param>  
                /// <param name="separatorCharNum">切分长度</param>  
                /// <param name="prefixFormat">前缀格式</param>  
                /// <returns>字符串数组</returns>  
                public static string[] SplitByLen(this string str, int separatorCharNum, string prefixFormat)   
                {  
                    string[] arr = SplitByLen(str, separatorCharNum);  
                    if (arr.Length == 1)   
                    {  
                        return arr;  
                    }  
                    List<string> list = new List<string>();  
                    for(int i=1;i<=arr.Length;i++)   
                    {  
                        list.Add(string.Format(prefixFormat,i.ToString(), arr.Length.ToString(), arr[i-1]));  
                    }  
                    return list.ToArray();  
                }  
          
                /// <summary>  
                /// 按字符串长度切分成数组  
                /// </summary>  
                /// <param name="str">原字符串</param>  
                /// <param name="separatorCharNum">切分长度</param>  
                /// <returns>字符串数组</returns>  
                public static string[] SplitByLen(this string str, int separatorCharNum)  
                {  
                    if (string.IsNullOrEmpty(str) || str.Length <= separatorCharNum)   
                    {  
                        return new string[] { str };  
                    }  
                    string tempStr = str;  
                    List<string> strList = new List<string>();  
                    int iMax = Convert.ToInt32(Math.Ceiling(str.Length / (separatorCharNum * 1.0)));//获取循环次数  
                    for (int i = 1; i <= iMax; i++)  
                    {  
                        string currMsg = tempStr.Substring(0, tempStr.Length > separatorCharNum ? separatorCharNum : tempStr.Length);  
                        strList.Add(currMsg);  
                        if (tempStr.Length > separatorCharNum)  
                        {  
                            tempStr = tempStr.Substring(separatorCharNum, tempStr.Length - separatorCharNum);  
                        }  
                    }  
                    return strList.ToArray();  
                }  
            }  
        }  
    View Code

    自己参考的一个简单历程:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace ChaiF
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
               string[] arr=SplitByLen(textBox1.Text,4);
                textBox2.Text=arr[0].ToString();
                textBox3.Text=arr[1].ToString();
    
            }
            public string[] SplitByLen(string str, int separatorCharNum)  
            {  
                if (string.IsNullOrEmpty(str) || str.Length <= separatorCharNum)   
                {  
                    return new string[] { str };  
                }  
                string tempStr = str;  
                List<string> strList = new List<string>();  
                int iMax = Convert.ToInt32(Math.Ceiling(str.Length / (separatorCharNum * 1.0)));//获取循环次数  
                for (int i = 1; i <= iMax; i++)  
                {  
                    string currMsg = tempStr.Substring(0, tempStr.Length > separatorCharNum ? separatorCharNum : tempStr.Length);  
                    strList.Add(currMsg);  
                    if (tempStr.Length > separatorCharNum)  
                    {  
                        tempStr = tempStr.Substring(separatorCharNum, tempStr.Length - separatorCharNum);  
                    }  
                }  
                return strList.ToArray();  
            }  
        }
    }

  • 相关阅读:
    基于51单片机PWM调速L298芯片控制两选一直流电机正反运转的项目工程
    基于51单片机四位一体数码管显示短按加或减数值及长按连加或连减数值的项目工程
    Android 多语言动态更新方案探索
    图解 Promise 实现原理(一)—— 基础实现
    vivo 大规模特征存储实践
    揭秘 vivo 如何打造千万级 DAU 活动中台
    前端科普系列(2):Node.js 换个角度看世界
    分布式定时任务调度框架实践
    深入学习和理解 Redux
    前端科普系列(1):前端简史
  • 原文地址:https://www.cnblogs.com/congcongdi/p/9214332.html
Copyright © 2020-2023  润新知