A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 颜晓峰 中级黑马   /  2013-3-4 12:41  /  1318 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 颜晓峰 于 2013-3-6 20:05 编辑

JAVA中的split(),可以使用正则表达式作为分隔符
var words = sentence.split(/\s+/)
C#中就不行了。。
C#中的split(),分隔符为char[],如果想用split()分割“1 2   3      4”,4个数字用空格分开,但空格数量不一定。。。。
请问有办法实现用split()方法分割被空格隔开,但空格数量不一定的字符串么{:soso_e137:}?

3 个回复

倒序浏览
可以变通一下使用正则将空格替换为逗号,再将新生成的字符串用逗号分隔。
例如:
  string str = "1  2  3      4";
  string[] newStr=  Regex.Replace(str,@"\s+",",").Split(',');
回复 使用道具 举报
拿过去试试喽 只会这样了

public   static   void   Main()   
  {   
          string   str   =   "黑马 程序员    希望   黑马论坛  版主老大 加分  !!!!    ";   
          string[]   args   =   str.Split(' ');   
          ArrayList   arr   =   new   ArrayList();   
          for   (int   i   =   0;   i   <   args.Length;   i++)   
          {   
                  string   val   =   args[i].Trim();   
                  if   (val   ==   string.Empty)   continue;   
   
                  arr.Add(val);   
                  Console.WriteLine(val);   
          }   
          Console.ReadLine();   
  }

点评

你看我的方法,不过好像有点区别。我还以为我是二楼,变三楼了。  发表于 2013-3-4 14:24
回复 使用道具 举报
支持一下1楼,我想到另一种解决办法,就是你先分割,然后再除去空格。msdn有解释的,自己搜索一下。

Split( Char [], StringSplitOptions)
返回的字符串数组包含此字符串中的子字符串(由指定 Unicode 字符数组的元素分隔)。参数指定是否返回空数组元素。

例如:
            string st = "1 2  3    4";
            char[] chartemp = { ' ' };
            string[] arr = st.Split(chartemp,StringSplitOptions.RemoveEmptyEntries);
            //在使用的时候直接调用arr[索引].Trim(),下面的代码可以省略。
            for (int i = 0; i < arr.Length; i++)
            {
                arr[i] = arr[i].Trim();
            }
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马