2 u012094400 u012094400 于 2016.04.22 20:02 提问

C# split和join方法的疑惑?请各位帮忙看看
  var lineTxt="";
  经过一系列转换lineTxt是M00T11;;
  char[] charSeparators = new char[] { ';' };
  string[] array = lineTxt.Split(charSeparators,StringSplitOptions.RemoveEmptyEntries);//在这里如果我想每三个字符为一个数组该怎么实现呢?
  lineTxt = string.Join(";", array);
  return lineTxt;//请问为什么返回值lineTxt里面没有分号?

2个回答

caozhy
caozhy   Ds   Rxr 2016.04.22 23:45
 你按照分号分割,又去掉了空白组(RemoveEmptyEntries),结果数组只有一个元素,是M00T11,再join,join只有当你有2个以上组的时候才添加分割。所以结果没有。

按照你的要求,你的代码应该是
var lineTxt="M00T11;;";
lineTxt = string.Join(";", RegEx.Matches(lineTxt, "[A-Z0-9]{3}").Cast<Match>().Select(x => x.Value));
此时结果是"M00;T11"
u012094400
u012094400 回复caozhy: 就是cast<Match>会报错,然后第二个问题的意思就是我想输出为 MOO T11;
一年多之前 回复
caozhy
caozhy 回复愈来_好: 不明白你说的意思
一年多之前 回复
u012094400
u012094400 这里cast<Match>是什么意思呢?如果我在原来输出的MOOT11后面加上一个;就增加一个组存放我加上的;
一年多之前 回复
u012094400
u012094400 谢谢你
一年多之前 回复
CSDNXIAON
CSDNXIAON   2016.04.22 20:12

join()和split()方法
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!