首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >取.Split (‘')的所有元素,取最后或排除最后一项

取.Split (‘')的所有元素,取最后或排除最后一项
EN

Stack Overflow用户
提问于 2013-06-13 11:32:53
回答 4查看 1.1K关注 0票数 0

我有一个不一致的地址字段,我从excel上读到。我需要分割这个字段,并将这2个值输入到两个list属性中。

内容可以是这样的

在门口42

我需要将号码从其余的数字中除以,并在物业“街”加上“在门口”,在物业“号码”中加上"42“。

我已解决了用这个号码取数字的问题:

代码语言:javascript
复制
Number = Convert.ToString(ws.Cells[j + 3, i + 2].Value).Split(' ').LastOrDefault()

我如何将这个字符串与Linq分开,并将最后一个数字排除在外才能得到街道?

亲切的问候

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-06-13 11:46:22

使用regex,这样您也可以灵活地满足您的需要。

这是一个样本:

代码语言:javascript
复制
    static void Main(string[] args)
    {
        Regex regex = new Regex(@"(?<words>[A-Za-z ]+)(?<digits>[0-9]+)");

        string input = "At the gates 42";

        var match = regex.Match(input);
        var a = match.Groups["words"].Value; //At the gates 
        var b = match.Groups["digits"].Value; //42
    }
票数 2
EN

Stack Overflow用户

发布于 2013-06-13 11:40:23

在这里劈开绳子有点过分。你只需要找到“”的最后一次出现,然后在这个位置分裂:

代码语言:javascript
复制
var address = "At the gates 42";
var idx = address.LastIndexOf(' ');
var street = address.Substring(0, idx);
var number = address.Substring(idx + 1);

如果需要更多的灵活性,也可以考虑使用正则表达式。

票数 2
EN

Stack Overflow用户

发布于 2013-06-13 11:42:58

你可以这么做:

代码语言:javascript
复制
String[] sa = Convert.ToString(ws.Cells[j + 3, i + 2].Value).Split(' ');
Int32 number = Convert.ToInt32(sa[sa.Length - 1]);
String street = String.Join(" ", sa.Take(sa.Length - 1));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17086025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档