首页 新闻 会员 周边 捐助

c#截取字符串

0
悬赏园豆:40 [已解决问题] 解决于 2016-09-06 12:08

例如:a="A.dfgvjahfg,B.dfgvjahfg,C.dfgvjahfg,D.dfgvjahfg,E.dfgvjahfg,F.dfgvjahfg,B.dfgvjahfg"我想要截取A,B,C,D等等,a的值是不固定的,我想的是截取‘.’前面的内容,望各位大神指教,谢谢啦!!!

A.I.N.Y的主页 A.I.N.Y | 初学一级 | 园豆:2
提问于:2016-09-05 16:02
< >
分享
最佳答案
0

用Lamdba实现的代码如下:

var a = "A.dfgvjahfg,B.dfgvjahfg,C.dfgvjahfg,D.dfgvjahfg,E.dfgvjahfg,F.dfgvjahfg,B.dfgvjahfg";
var result = a.Split(',').Select(s => s.Split('.').FirstOrDefault());
result.ToList().ForEach(s => Console.WriteLine(s));

输出结果:

A
B
C
D
E
F
B
收获园豆:40
dudu | 高人七级 |园豆:30339 | 2016-09-05 16:29

这个方法不错,简单高效,学习了

梦天涯 | 园豆:103 (初学一级) | 2016-09-06 12:05
其他回答(7)
0

步骤:1、转成字符数组。2、遍历字符数组,然后获取每一个.对应的位置。3、然后再获取该位置前一个字符。

这样一遍下来,你要的字符就都拿到了。

6哒忆夏 | 园豆:594 (小虾三级) | 2016-09-05 16:14
0

使用正则式

(?<=^|,).*?(?=$|\.)

刘宏玺 | 园豆:14020 (专家六级) | 2016-09-05 16:17
0

 怎么总有问字符串截取的?.net给我们提供了那么多东西,难道split这些东西都不知道么?

顾晓北 | 园豆:10898 (专家六级) | 2016-09-05 16:17

知道啊,我用: string [] tem=aa.aplit('.');保存起来了啊

支持(0) 反对(0) A.I.N.Y | 园豆:2 (初学一级) | 2016-09-05 16:23

@A.I.N.Y: 你要先用,split,然后才是一个整个的数据结构,然后在每个进行用.split,可以存到一个类里面,然后你只取某一个属性。

支持(0) 反对(0) 顾晓北 | 园豆:10898 (专家六级) | 2016-09-05 16:25
0

正则替换

表达式:.[^\.]*[,$]+

可以到这里验证:http://tool.oschina.net/regex/

magic_evan | 园豆:206 (菜鸟二级) | 2016-09-05 16:52
0

dudu的正解~最简单粗暴的方法

balahoho | 园豆:2050 (老鸟四级) | 2016-09-05 17:58
0

linq果然好用~dudu的好用

远扬 | 园豆:30 (初学一级) | 2016-09-06 11:10
0

正则高效,万能!

try {
Regex regexObj = new Regex(@"(?<=^|,).*?(?=$|\.)", RegexOptions.Multiline);
Match matchResults = regexObj.Match(subjectString);
while (matchResults.Success) {
// matched text: matchResults.Value
// match start: matchResults.Index
// match length: matchResults.Length
matchResults = matchResults.NextMatch();
} 
} catch (ArgumentException ex) {
// Syntax error in the regular expression
}

 

张朋举 | 园豆:1936 (小虾三级) | 2016-09-06 11:25
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册