要么在字符串里加点分隔符用split
要么循环for

解决方案 »

  1.   

    str.Split("",StringSplitOptions.RemoveEmptyEntries);
      

  2.   

            /// <summary>
            /// string转string[]
            /// </summary>
            /// <param name="str">待转换字符串</param>
            /// <returns>字符串数组</returns>
            public static string[] StrToArray(string str)
            {
                string[] str_array = new string[str.Length];
                for (int cnt = 0; cnt < str.Length; cnt++)
                {
                    str_array[cnt] = str[cnt];
                }
                return str_array;
            }
      

  3.   

    string[] strs = Regex.Split(str, "(?<=.)(?=.)");using System;
    using System.Text.RegularExpressions;class Program
    {
      static void Main()
      {
        string str = "abc"; 
        string[] strs = Regex.Split(str, "(?<=.)(?=.)");
        foreach (string s in strs)
        {
          Console.WriteLine("[{0}]", s);
        }
      }
    }
    /* 程序输出:
    [a]
    [b]
    [c]
    */
      

  4.   

    这样也可以:
    string[] strs = System.Text.RegularExpressions.Regex.Split(str, "(?!^|$)");
      

  5.   

      /// <summary>
            /// 按指定字数分割字符串
            /// </summary>
            /// <param name="str">待分割字符串</param>
            /// <param name="number">字数</param>
            /// <returns>返回分割后的字符串</returns>
            public static string[] SplitByNumberWords(String str, int number)
            {
                string[] strSplit = null;
                int length = str.Length;
                if (length > number)
                {
                    //需要分割的字符串数组长度,有余数时总长度要加一
                    strSplit = new string[(int)length / number + (length % number > 0 ? 1 : 0)];                for (int i = 0; i < strSplit.Length;i++ )
                    {
                        if ((i + 1) == strSplit.Length && (length % number) > 0)
                        {
                            //最后一截字符串
                            strSplit[i] = str.Substring(i * number, length % number);
                        }else
                        {
                            strSplit[i] = str.Substring(i * number, number);
                        }
                    }
                }else
                {
                    //长度小于自定字符数
                    strSplit = new string[1];
                    strSplit[0] = str;
                }
                return strSplit;
            }
      

  6.   

    楼主要的肯定是制定字数的。
    也就是说“ABCDEFGH”=》A,B,C,D,E,F,G,H 或者AB,CD,EF,GH
    用我的方法SplitByNumberWords("string",切割后lengs)
      

  7.   


    注意: 结果要的是 string[] , 不是char[]
      

  8.   


    这个只有一行语句:
    return Regex.Split(s, string.Format("(?<=^(?:.{{{0}}})+)", n));
    using System;
    using System.Text.RegularExpressions;class Program
    {
      static void Main()
      {
        string str = "abcdefghijklmnopqrstuvwxyz";
        string[] strs = SplitByNumberWords(str, 5); 
        foreach (string s in strs)
        {
          Console.WriteLine("[{0}]", s);
        }
      }
      
      static string[] SplitByNumberWords(string s, int n)
      {
        return Regex.Split(s, string.Format("(?<=^(?:.{{{0}}})+)", n));
      }}
    /* 程序输出:
    [abcde]
    [fghij]
    [klmno]
    [pqrst]
    [uvwxy]
    [z]
    */
      

  9.   

    String.ToCharArray  确实可以
      

  10.   

    wuyi8808 :
    谢了谢了,受教了。
    俺就没想到过正值,哈哈!
      

  11.   


    请看清楚题目。注意,LZ要求返回的是 string[],而不是 char[]。
      

  12.   

    改进一下17楼的程序,加上“(?!$)”,以去除可能的最后一个空字符串:
      static string[] SplitByNumberWords(string s, int n)
      {
        return Regex.Split(s, string.Format("(?!$)(?<=^(?:.{{{0}}})+)", n));
      }
      

  13.   

    这种Google 一把一大堆的东西也是精华。床上等你越来越不行了。
      

  14.   

    这还叫正解?new string(str.ToCharArray())还差不多
      

  15.   


                string s = "abcdefghijklmwwsa2321rw@1124^&*";
                int n = s.Length ;
                for (int i = 0; i < n; i++)
                {
                    s=s.Insert(2*i+1, ",");
                }
                s = s.Remove(s.Length - 1);//去掉最后一个","号
                string[] res = s.Split(',');
      

  16.   


    你们都是觉得写得难读才算牛吗?这个问题本来就将char[]数组简单地用 new string(char, int) 转化为string[]就OK了,还加精。真是无语
      

  17.   

    #include <string>
    #include <iostream>
    using namespace std;
    int main()
    {
    size_t i=0,j=0;
    int number=0;
    string str1 ="10.7.93.25";
    string str2 = ".";
    string result[4];
    for(;((j=str1.find(str2,i))!=string::npos);i=j)
    {
    result[number]=str1.substr(i,j-i);
    j=j+str2.size();
    ++number;
    }
    result[number]=str1.substr(i);
    cout<<result[0]<<endl;
    cout<<result[1]<<endl;
    cout<<result[2]<<endl;
    cout<<result[3]<<endl;
    return 0;
    }http://www.Lookxin.cn IT资讯网
      

  18.   

     感想颇多!都用了自己的方式,都有自己的特点方式一:
    String.ToCharArray
    这个方式很好,而且简单明了,比较实用,但是返回值是char数组,如果使用的处理函数是string数组,需要处理或转换一下,但也不失为一种好方法方式二:
    就是自己写代码的方式,利用循环和其他的一些方式,利用自己写的逻辑进行处理。这种方式,也可以实现,而且能比较灵活的实现,而且能够随心所欲。但是如果分隔的方式不是需要太多变化的话,还是推荐使用类库,这样比较能节省大家的工作量方式三:
    使用正则表达是,这个方式很好!而且应该有很高的效率。而且逻辑简单清晰。但是就是,不是所有人都熟悉这正则表达式!但是这个方式确实很好!
      

  19.   

    大学问啊。
    String.ToCharArray
      

  20.   

    String.ToCharArray 可以 
    split也行
      

  21.   

    String.ToCharArray 可以 
    split也行
    呵呵,试试
      

  22.   


    String str="abc";
         String s[]=new String[str.length()];
         for(int i=0;i<str.length();i++){
         s[i]=""+str.charAt(i);
         System.out.println(s[i]);
         }虽然方法不算好,还比较简便