一个很简单的问题 string.split()
string dd = "600000 ABCDEFG BANK ";
string[] ddarr = dd.Trim().Split(new string[]{" "}, StringSplitOptions.RemoveEmptyEntries );
foreach (var item in ddarr )
{
Console.WriteLine("|" + item + "|");
}
/* Output WHY?
|600000 ABCDEFG|
| |
|BANK|
*/
我有点晕了,
我想将字符串数组dd里面的3个单词提出来,为什么分离不成功,应怎么编码。------解决方案--------------------1、将两个空格通过replace替换成一个空格
2、根据空格分隔,不要使用后面那个 StringSplitOptions.RemoveEmptyEntries 参数
------解决方案--------------------参考
var cusNames = master.CusName.Split('/');
master.CusName = cusNames[0].Trim();
if (cusNames.Length > 1 && string.IsNullOrEmpty(master.Contacts))
{
master.Contacts = cusNames[1].Trim();
}
------解决方案--------------------貌似没什么问题.可以正常输出吧.
------解决方案--------------------你都Trim了还怎么Split空格啊
用正则Split吧。string[] ddarr =Regex.Split(dd, @"[ ]+");
------解决方案--------------------代码没问题。是你600000 ABCDEFG 这两个之间的非打印字符不是空格 可能是Tab键按出来的
------解决方案--------------------Trim是去除左右空格,和分离没有关系
另外,使用正则分离,要去除空内容,正则两种方法
//分离
string[] ddarr = Regex.Split(dd,@"\s+").Where(a=>!string.IsNullOrEmpty(a)).ToArray();
//匹配
string[] ddarr1 = Regex.Matches(dd, @"\S+(?=\s
------解决方案--------------------
$)").Cast<Match>().Select(a=>a.Value).ToArray();
------解决方案--------------------
Trim只是去掉头尾非打印字符,不会去掉中间的非打印字符